概要
前回の、Dockerで複数Laravel5.5プロジェクトの環境構築(1)で構築したdocker+php7環境の上にlaravel5.5プロジェクトを作成し、ローカル開発環境を整えていきます。また、手順を通して、簡単にdockerのコマンドについての解説もしていきます。
手順
1. phpコンテナへLaravelプロジェクトの作成
まずはじめに、phpコンテナへcomposerからlaravelをインストールします。
こちらの公式手順を参考に進めていきます。
$ docker-compose ps
# Name Command State Ports
# --------------------------------------------------------------------------------------------------
# foo_composer composer --help Exit 0
# foo_yarn node Exit 0
# hoge_composer composer --help Exit 0
# hoge_yarn node Exit 0
# mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
# php-foo docker-php-entrypoint apac ... Up 80/tcp
# php-hoge docker-php-entrypoint apac ... Up 80/tcp
# proxy /app/docker-entrypoint.sh ... Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
dockerコンテナが上のように起動した状態で、composerコマンドを叩きます。
docker-compose run --rm foo_composer create-project laravel/laravel foo
docker-compose ps
コマンドで確認できるように、composerコンテナは通常起動していない状態です。
--rm
オプションは起動と同時にコマンドを実行し、終了後コンテナを削除するオプションです。このオプションをつけることで、ゴミを残さずにコンテナ操作を行うことができます。foo_composer
はdocker-compose.yml
で定義されたサービス名です。
また、composerのDockerfileでENTRYPOINT
にcomposer
、CMD
に--help
を設定しているため、
コンテナを次のように起動するとcomposer --help
コマンドが実行されます。
docker-compose run --rm foo_composer
2. プロジェクトパスの修正
手順1でLaravelのインストールとプロジェクトの作成を同時に行いました。 (完了には少し時間がかかるかもしれません。)
しかし、docker-compose.yml
で設定していたパスの都合上、laravel-docker/data
以下のパスに修正が必要です。
以下の手順で、Laravelのプロジェクトをdata
ディレクトリ直下に移動させましょう。
$ mv data/foo{,.bkp}
$ cp -r data/foo.bkp/foo data/foo
$ sudo rm -rf data/foo.bkp
3. パーミッションの変更
# php+apacheコンテナ内へアクセス
$ docker-compose exec foo /bin/bash
$ pwd
# /var/www/html/foo
$ chmod 777 -R storage
ブラウザへアクセス
https://foo.foo.com へアクセスすると、Laravelのwelcomeページヘアクセスできました。
おわりに
以上で手順の解説は終了です。同手順でLaravelの別プロジェクトhogeを作成すると、dockerで複数ドメインのアプリを同時に管理し、reverse-proxyでアクセスを振り分けることができました。
改善点・ご指摘などございましたら、気軽にコメントをお願いします。