4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerで複数Laravel5.5プロジェクトの環境構築(2)

Last updated at Posted at 2018-02-20

概要

前回の、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_composerdocker-compose.ymlで定義されたサービス名です。
また、composerのDockerfileでENTRYPOINTcomposerCMD--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ページヘアクセスできました。

browser2.png

おわりに

以上で手順の解説は終了です。同手順でLaravelの別プロジェクトhogeを作成すると、dockerで複数ドメインのアプリを同時に管理し、reverse-proxyでアクセスを振り分けることができました。

改善点・ご指摘などございましたら、気軽にコメントをお願いします。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?