LoginSignup
8
6

More than 3 years have passed since last update.

Docker for MacのLaravelが遅いから速くしたい

Last updated at Posted at 2020-07-31

要約

  • 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 で 最適化 高速化 手法一覧

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6