前提
- macOS High Sierra 10.13.6
- docker for mac インストール済み
手順
1. ディレクトリを作成し移動
$ mkdir myproject
$ cd myproject
2. GitHubからLaradockをクローンし移動
myproject
$ git clone https://github.com/Laradock/laradock.git
$ cd laradock
3. サンプルの環境設定ファイルをコピー
laradock
$ cp env-example .env
4. 上でコピーした.envファイルをvi等任意のエディタで開く
laradock
$ vi .env
5. .envファイルの以下の箇所を編集する
laradock/.env
### Paths #################################################
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../projectName/ # 任意のプロジェクト名追加
省略
### MYSQL #################################################
MYSQL_VERSION=5.7 # latestから5.7に変更
MYSQL_DATABASE=default # DB名を変えたい場合はここを変更
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
6. docker-composeコマンドで任意のコンテナを起動
laradock
$ docker-compose up -d nginx mysql phpmyadmin redis
# 初めはimageをダウンロードしてくるため、かなり時間がかかる
# 2回目以降は一瞬で起動完了する
# 最終的に以下のような表示が出たらコンテナの起動完了
Creating laradock_mysql_1 ... done
Creating laradock_redis_1 ... done
Creating laradock_docker-in-docker_1 ... done
Creating laradock_phpmyadmin_1 ... done
Creating laradock_workspace_1 ... done
Creating laradock_php-fpm_1 ... done
Creating laradock_nginx_1 ... done
# 念のため以下のコマンドで起動確認
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1 dockerd-entrypoint.sh Up 2375/tcp
laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
laradock_nginx_1 /bin/bash /opt/startup.sh Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1 docker-php-entrypoint php-fpm Up 9000/tcp
laradock_phpmyadmin_1 /run.sh supervisord -n -j ... Up 0.0.0.0:8080->80/tcp, 9000/tcp
laradock_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
# State が Up で起動中
6. 以下のコマンドでworkspaceコンテナに入り、Laravelをインストール
laradock
$ docker-compose exec --user=laradock workspace bash
laradock@hogehoge:/var/www$
# rootで入るとcomposerの実行時に怒られるため、--userオプションでlaradockユーザーで入る
# 以下のコマンドでlaravelプロジェクト作成 projectNameは手順5.で指定した名前を使用する。
laradock@hogehoge:/var/www$ composer create-project laravel/laravel projectName
# インストールが完了するまで待つ、10〜15分程度?
7. コンテナ内のLaravelの環境設定ファイルを編集
laradock
# 初めにデフォルトで用意されている設定ファイルをコピー
laradock@hogehoge:/var/www$ cp .env.example .env
# コピーした設定ファイルをvi等任意のエディタで開く
laradock@hogehoge:/var/www$ vi .env
.env
# 省略
# 以下の箇所を修正する。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1 # mysqlに変更 laradockが名前解決してくれる
DB_PORT=3306
DB_DATABASE=homestead # defaultに変更
DB_USERNAME=homestead # defaultに変更
DB_PASSWORD=secret
# 省略
REDIS_HOST=127.0.0.1 # redisに変更 laradockが名前解決してくれる
REDIS_PASSWORD=null
REDIS_PORT=6379
8. コンテナの再起動
laradock
# コンテナから抜ける
laradock@hogehoge:/var/www$ exit
# コンテナの停止と起動
$ docker-compose stop
$ docker-compose up -d nginx mysql phpmyadmin redis
9. 完了
localhostにアクセスしてLaravelの画面が表示されたらOK。
phpMyAdminはlocalhost:8080⇦こちら。
備忘
Laradockは環境変数ファイルにバージョン情報やコンテナに必要な情報をまとめているため、
基本的にdocker-compose.ymlをいじる必要がない。