更新履歴
- 2018-06-12: 記事の内容をv7系に対応
- 2018-06-12: アップグレード方法を記載
Laradock のインストール
$ git clone https://github.com/Laradock/laradock.git
$ cd laradock
$ cp env-example .env
Tips
デフォルトの設定ではホスト側のポート番号
3306
はコンテナ側の MySQL ポート3306
へフォワーディングされる。ホスト側ですでに3306
を使用していたりする場合は.env
ファイルのMYSQL_PORT=3306
を適宜修正する。.envMYSQL_PORT=3306
docker-compose.ymlports: - "${MYSQL_PORT}:3306"
上記のように、
docker-compose.yml
は.env
の変数定義を参照している。調整が必要な場合は基本的に .env ファイルの方を修正する。
コンテナの起動方法
$ docker-compose up -d nginx mysql
Tips
docker-compose.yml に記述されている
depends_on
ディレクティブの指定により、依存関係にあるサービス(php-fpm
/workspace
など)も自動で起動する。
コンテナへの入り方
docker ps
コマンドでコンテナのステータスを調べる。STATUS が Up
になっていれば起動中の証。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf5c3d89920e laradock_nginx "nginx" 25 minutes ago Up 25 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1
5a14d8d967ff laradock_php-fpm "docker-php-entrypoi…" 25 minutes ago Up 25 minutes 9000/tcp laradock_php-fpm_1
5acec9238740 laradock_workspace "/sbin/my_init" 25 minutes ago Up 25 minutes 0.0.0.0:2222->22/tcp laradock_workspace_1
3415a979e523 laradock_mysql "docker-entrypoint.s…" 3 hours ago Up 25 minutes 0.0.0.0:3307->3306/tcp laradock_mysql_1
Tips
--format
オプションを利用すると、表示項目を必要な情報のみに絞ることができる。$ docker ps --format "table {{.Status}}\t{{.Names}}" STATUS NAMES Up 34 minutes laradock_nginx_1 Up 34 minutes laradock_php-fpm_1 Up 34 minutes laradock_workspace_1 Up 34 minutes laradock_mysql_1
サービス {SERVICE}
を指定してコンテナの中に入る
$ docker-compose exec {SERVICE} bash
Tips
サービス
{SERVICE}
には、docker-compose.yml
のservices
ディレクティブに記述されているサービス名を指定する。version: '2' services: workspace: ... php-fpm: ... nginx: ... mysql: ... : : :
Laradock においては、
workspace
,php-fpm
,nginx
,mysql
などそれぞれがサービスにあたる。workspace$ docker-compose exec workspace bash
php-fpm$ docker-compose exec php-fpm bash
nginx$ docker-compose exec nginx bash
mysql$ docker-compose exec mysql bash
Laravel プロジェクトの作成
作業はホスト側ではなく workspace
コンテナの中に入って行う。パッケージ管理システムの composer
など、必要なものがあらかじめ用意されているので自分で準備する手間が要らない。
デフォルトではコンテナの中に入ると root
ユーザーになるが、composer
を root
ユーザーで実行しようとすると警告が表示されてしまうため、--user
オプションを laradock
で指定してログインする。
$ docker-compose exec --user=laradock workspace bash
$ whoami
laradock
コンテナの中に入ったら composer create-project
でプロジェクトを作成する。例として foo
という名前のプロジェクトを作成する。
$ composer create-project --prefer-dist laravel/laravel foo
Tips
Laradock では、Laravel 公式の Laravel Installer (
laravel new
コマンド)ではなく、composer create-project
によるプロジェクトの作成を推奨しています。
アプリケーションのパスを変更
デフォルトの環境設定ファイル .env
ではアプリケーションのパスが ../
となっています。
APP_CODE_PATH_HOST=../
先の例では foo
という名前でプロジェクトを作成したため、これを ../foo
に変更する必要があります。
APP_CODE_PATH_HOST=../foo
.env の変更をコンテナに反映させる
$ docker-compose stop
$ docker-compose up -d nginx mysql
構成の確認
ここまで作業を終えると、以下のようなディレクトリ構成になっています。
$ tree -L 1 ./laradock_sample
./laradock_sample
├── laradock
└── foo
2 directories, 0 files
参考までに。
アプリケーションの確認
ホスト側のポート設定(NGINX_HOST_HTTP_PORT=80
)を .env
でとくに変更していなければ、ブラウザで http://localhost にアクセスすることができます。80 番ポートを使われると困る場合は適宜変更してください。
Laradock のアップグレード方法
$ docker-compose down
$ git pull origin master