LoginSignup
9
3

More than 5 years have passed since last update.

Laradockでプロジェクトごとに環境構築する

Last updated at Posted at 2018-09-06

LaradockでLaravel環境構築する体験が良くて他のプロジェクトでも導入しようとしたら
思いの外ハマったので、同じことで困っている人や昨日の自分に向けて

  • docker 18.06.1-ce
  • docker-compose 1.22.0
  • macOS High Sierra 10.13.6

dockerのstorage等の保存先の変更

初期設定だと環境変数で、どのプロジェクトでも同じデータを参照してしまうので、MySQLが立ち上がらないなどの問題がでてくる。場所は.envの14行目くらい

# DATA_PATH_HOST=~/.laradock/data
DATA_PATH_HOST=.laradock/data

プレフィックスを変更する

コンテナ名が被りコンテナボリューム内にデータが混在する可能性があるので33行目あたりを固有のプロジェクト名などに変更する。わたしは見事にlaradock_~のプレフィックスがついたコンテナが立ち上がりプロジェクトによってミドルウェアやドキュメントルートの変更ができずハマってしまった。
こちらは.envの33行目あたり

# COMPOSE_PROJECT_NAME=laradock
COMPOSE_PROJECT_NAME=private-laradock

すでにコンテナが立ち上がっている場合はポートが被ってdocker-compose upが失敗するので
書き換える前にdocker-compose stopdocker-compose downをしてコンテナを止めて置く必要がある。

% docker-compose up -d apache2 mysql
% docker-compose ps
               Name                              Command               State                    Ports
--------------------------------------------------------------------------------------------------------------
private-laradock_apache2_1            /opt/docker/bin/entrypoint ...   Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
private-laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up      2375/tcp
private-laradock_mysql_1              docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp, 33060/tcp
private-laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up      9000/tcp
private-laradock_workspace_1          /sbin/my_init                    Up      0.0.0.0:2222->22/tcp```

おまけ

色々と試行錯誤していく中で変更が反映されない事がありdocker-compose build --no-cacheをやると
必要以上に時間が掛かるのでdocker-compose build --no-cache apache2 mysqlでサービス名を指定するのが吉。
(使わないサービスのイメージも再ビルドしてしまうのが原因)

参考
LaravelとLaradockを使ったチームでの開発環境を用意する vol.1 ~Laradock設定編~
Docker-docs-ja

9
3
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
9
3