はじめに

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でコンテナを止めてから他のプロジェクトのコンテナを起動する必要があります。
たくさんのサイトや記事を参考にさせていただきました。ありがとうございます。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.