要約
- Docker for Macのファイルマウントが遅すぎるので、ファイルマウント量を減らす
- ファイルマウントに:delegatedや:cachedを使う
- php.iniの設定でOPcacheを有効化する
- composerも遅いのでリポジトリの変更し、プライグイン導入
ファイルマウント量を減らす、かつマウントする時は:delegatedや:cachedを使う
- .gitはマウントする意味がないので、除外する
- マウントがどうしても必要な時は:delegatedや:cachedを使う
例
docker-compose.yml
version: '3'
services:
web:
image: nginx:${Version}
ports:
- "8000:80"
depends_on: # 追加
- app
volumes:
- ./docker/web/default.conf:/etc/nginx/conf.d/default.conf
- .:/var/www/html:delegated #:delegatedを追加
- exclude:/var/www/html/laravel-dir/.git #追加
container_name: web
app:
build: ./docker/php
volumes:
- .:/var/www/html:delegated #:delegatedを追加
- exclude:/var/www/html/laravel-dir/.git #追加
depends_on:
- mysql
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: hoge
MYSQL_USER: hoge
MYSQL_PASSWORD: hoge
MYSQL_ROOT_PASSWORD: hoge
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql:cached #:cachedを追加
volumes:
exclude: #空のVolumeを追加
mysql-data:
php.iniの設定でOPcacheを有効化する
php.ini
~~省略~~
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
composerも遅いのでリポジトリの変更し、プライグイン導入
FROM php:7.4-fpm
~~省略~~
# composerの高速化
RUN composer config -g repos.packagist composer https://packagist.jp && composer global require hirak/prestissimo
WORKDIR /var/www/html
参考
光遅い問題に対応して Composer を100倍速くする
Macのdockerが遅いストレスから解放されよう
Laravel で 最適化 高速化 手法一覧