LoginSignup
4
2

More than 5 years have passed since last update.

Laradock + nginx + MySQL + phpMyAdmin on Ubuntu16.04

Last updated at Posted at 2018-03-31

はじめに

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

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