はじめに
※この手順ではlaradockをプロジェクト毎にダウンロードしないとならず、手間もディスクスペースももったいないです。git cloneしたlaradockを使い回すやり方を思いついたので、手順がまとまったら別記事に残します。
Docker for Macで環境構築した時と少しだけ勝手が違ったので記事に残します。
(複数プロジェクトを管理しやすいように更新。2017/4/1)
(Laravel Mixを利用しやすいように更新。2017/4/1)
- Docker version 18.03.0-ce, build 0520e24
- docker-compose version 1.20.1, build 5d8c71b
作業
Laradock配置
mkdir 任意のプロジェクト名 && cd 任意のプロジェクト名
mkdir src
git clone https://github.com/Laradock/laradock.git
mv laradock laradock-任意のプロジェクト名 (一意であればなんでも可)
cd laradock-任意のプロジェクト名
cp env-example .env
Laradockの.env編集
laradock/.env
APPLICATION=../src/
DATA_SAVE_PATH=~/.laradock/data/任意のプロジェクト名
WORKSPACE_INSTALL_NODE=true
WORKSPACE_INSTALL_PYTHON=true
NGINX_HOST_HTTP_PORT=8880
MYSQL_PORT=33066:3306
- もしくは下記コマンドを実行
find . -name ".env" | xargs sed -i "s/APPLICATION=..\//APPLICATION=..\/src\//g"
find . -name ".env" | xargs sed -i "s/DATA_SAVE_PATH=~\/.laradock\/data/DATA_SAVE_PATH=~\/.laradock\/data\/任意のプロジェクト名/g"
find . -name ".env" | xargs sed -i "s/WORKSPACE_INSTALL_NODE=false/WORKSPACE_INSTALL_NODE=true/g"
find . -name ".env" | xargs sed -i "s/WORKSPACE_INSTALL_PYTHON=false/WORKSPACE_INSTALL_PYTHON=true/g"
find . -name ".env" | xargs sed -i "s/NGINX_HOST_HTTP_PORT=80/NGINX_HOST_HTTP_PORT=8880/g"
find . -name ".env" | xargs sed -i "s/MYSQL_PORT=3306/MYSQL_PORT=33066:3306/g"
コンテナのビルドと起動
docker-compose up --build -d nginx mysql phpmyadmin
#--buildオプションはlaradockの設定を変更した時のみ
コンテナに接続、Laravelプロジェクト作成
docker-compose exec --user=laradock workspace bash
composer create-project --prefer-dist laravel/laravel .
chmod -R 777 storage
Laravelの.env編集
var/www/.envもしくはsrc/.env
#中略 9行目
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
コンテナ内にて下記コマンドでマイグレーションができればMySQLの設定は成功です。
php artisan migrate
ブラウザでlocalhost:8880にアクセスした際にLaravelのデフォルトWelcomeページが表示され、
localhost:8080ではphpMyAdminにアクセスできるかと思います。
最後に
複数プロジェクトを管理する場合はdocker-compose stopでコンテナを止めてから他のプロジェクトのコンテナを起動する必要があります。
たくさんのサイトや記事を参考にさせていただきました。ありがとうございます。