Laradockを使ってみた。
コンテナ作成
ディレクトリ作成
mkdir hoge
cd hoge
Laradock clone
git clone https://github.com/laradock/laradock.git
.env作成
cp env-example .env
コンテナの初期化。
docker-compose up -d nginx mysql workspace phpmyadmin
コンテナの立ち上がりを確認
docker-compose
立ち上げ時、nginxの設定をしていないのでエラーが出たが、とりあえずOK コンテナへログインしてみる。
docker-compose exec workspace bash
これで、/var/wwwのディレクトリへ入れる。 物理的にはcloneしたのと同じディレクトリになるらしい。
Laravel Install と ngnix設定
そしてlaravel instal。
composer create-project laravel/laravel app01
終了後、nginxの設定をするため一旦停止。
exit
docker-compose stop
設定ファイルは、 nginx/sites/default.conf だが、変更内容はまんま nginx/sites/laravel.conf.example これでよい。
なので、
mv nginx/sites/default.conf nginx/sites/default.conf.bk
cp nginx/sites/laravel.conf.example nginx/sites/default.conf
でOK
その上で、
vim nginx/sites/default.conf
で、7行目付近の
root /var/www/laravel/public
->
root /var/www/app01/public
と変更。
そして、Dockerコンテナを再度立ち上げる
docker-compose up -d nginx
するとエラー。
Cannot start service nginx: driver failed programming external connectivity on endpoint xxxx
Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)
ERROR: Encountered errors while bringing up the project
portの問題くさい。 MAMPの終了と、mac apacheの終了をする。
sudo killall httpd
再度トライ。
docker-compose up -d nginx
成功!
ただし、ここで80番を専有したくはないので、ポートを変える。 設定ファイルを変えればいけそう /laradock/docker-compose.yml これの NGINX Server のポートを変えてみる
一旦dockerを止めて、ファイルを編集
docker-compose stop
vim /laradock/docker-compose.yml
ports:
- "${NGINX_HOST_HTTP_PORT}:80"
- "${NGINX_HOST_HTTPS_PORT}:443"
↓
ports:
- "8123:8123"
- "${NGINX_HOST_HTTPS_PORT}:443"
nginxの設定ファイルも変更。
vim nginx/sites/default.conf
listen 80;
listen [::]:80;
↓
listen 8123;
listen [::]:8123;
そして、再構築。
docker-compose up -d nginx mysql workspace phpmyadmin
MAMPが同時に稼働出来るのかテスト。
MAMPは80番を使っているので、行けた。 ※なぜか初期設定が88だった。なのに動いていた‥謎