DockerでLaravelの開発環境を構築するためのDocker設定
環境
WindowsのエディションがHomeの場合、Docker for Windowsが使えないのでDocker
Toolbox on Windowsを利用する。
インストール完了後 Docker Quickstart Terminal を起動。
Starting "default"...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(default) Waiting for an IP...
Machine "default" was started.
Waiting for SSH to be available...
Detecting the provisioner...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): Regenerating TLS certificates
Waiting for SSH to be available...
Detecting the provisioner...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
Start interactive shell
こんな感じで出てくればOKなはず。
ディレクトリ構成
こんな感じでproject以下にlaradockとlaravelを設置する場合の設定。
\c\project\
-laradock\
-laravel\
-public\ #DocumentRoot
設定手順
Laradockインストール
プロジェクトフォルダに移動してgit clone
cd /c/project
git clone https://github.com/Laradock/laradock.git laradock
設定ファイル作成
laradock フォルダ内のenv-exampleを.envとしてコピーする。
cd laradock
cp env-example .env
.env編集
デフォルトのままだと /c/project/public がドキュメントルートになるので.envを編集
# Point to the path of your applications code on your host
# デフォルトをコメントアウト
# APP_CODE_PATH_HOST=../
APP_CODE_PATH_HOST=../laravel
起動
docker-compose up -d nginx mysql phpmyadmin redis workspace
起動しているコンテナを確認
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
887439c0fd3b laradock_nginx "/bin/bash /opt/star…" 3 hours ago Up 3 hours 0.0.0.0:80-81->80-81/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1
4938762d6283 laradock_php-fpm "docker-php-entrypoi…" 3 hours ago Up 3 hours 9000/tcp laradock_php-fpm_1
7f846b3d6839 laradock_workspace "/sbin/my_init" 3 hours ago Up 3 hours 0.0.0.0:2222->22/tcp laradock_workspace_1
872905ab79b3 laradock_phpmyadmin "/docker-entrypoint.…" 3 hours ago Up 3 hours 0.0.0.0:8080->80/tcp laradock_phpmyadmin_1
67951c2a8ade laradock_redis "docker-entrypoint.s…" 3 hours ago Up 3 hours 0.0.0.0:6379->6379/tcp laradock_redis_1
起動してる仮想マシンのIPを確認
$ docker-machine.exe ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v19.03.5
上記の場合、
- http
- http://192.168.99.100
- phpMyAdmin
- http://192.168.99.100:8080
でアクセスできる。
Workspaceコンテナへのログイン
artisanコマンドを使う場合などworkspaceコンテナにログインして実行する。
docker-compose exec workspace bash
$ docker-compose exec workspace bash
root@e24ad68b4c9a:/var/www# pwd
/var/www
root@e24ad68b4c9a:/var/www# ls -la
total 1087023
drwxrwxrwx 1 laradock staff 8192 Feb 11 17:02 .
drwxr-xr-x 1 root root 4096 Feb 9 18:38 ..
drwxrwxrwx 1 laradock staff 4096 Feb 1 17:13 app
-rwxrwxrwx 1 laradock staff 1697 Feb 1 17:13 artisan
drwxrwxrwx 1 laradock staff 0 Feb 1 17:13 bootstrap
-rwxrwxrwx 1 laradock staff 1836 Feb 1 17:13 composer.json
-rwxrwxrwx 1 laradock staff 203744 Feb 9 07:41 composer.lock
-rwxrwxrwx 1 laradock staff 1838958 Feb 1 17:13 composer.phar
drwxrwxrwx 1 laradock staff 4096 Feb 1 17:13 config
drwxrwxrwx 1 laradock staff 0 Feb 1 17:13 database
-rwxrwxrwx 1 laradock staff 608 Feb 11 16:33 .env
-rwxrwxrwx 1 laradock staff 554 Feb 1 17:13 .env.example
drwxrwxrwx 1 laradock staff 0 Feb 9 20:16 .git
-rwxrwxrwx 1 laradock staff 116 Feb 1 17:13 .gitattributes
-rwxrwxrwx 1 laradock staff 142 Feb 1 17:13 .gitignore
-rwxrwxrwx 1 laradock staff 1083 Feb 1 17:13 package.json
-rwxrwxrwx 1 laradock staff 1086 Feb 1 17:13 phpunit.xml
drwxrwxrwx 1 laradock staff 4096 Feb 11 16:59 public
-rwxrwxrwx 1 laradock staff 3471 Feb 1 17:13 readme.md
drwxrwxrwx 1 laradock staff 0 Feb 1 17:13 resources
drwxrwxrwx 1 laradock staff 4096 Feb 9 07:41 routes
-rwxrwxrwx 1 laradock staff 584 Feb 1 17:13 server.php
drwxrwxrwx 1 laradock staff 0 Feb 1 17:13 storage
drwxrwxrwx 1 laradock staff 0 Feb 1 17:13 tests
drwxrwxrwx 1 laradock staff 8192 Feb 11 16:57 vendor
-rwxrwxrwx 1 laradock staff 570 Feb 1 17:13 webpack.mix.js
外部ツールでssh接続する場合は下記参照
phpMyAdmin
ユーザー、パスワードは.envに書いてある
### PHP MY ADMIN ##########################################
# Accepted values: mariadb - mysql
PMA_DB_ENGINE=mysql
# Credentials/Port:
PMA_USER=default
PMA_PASSWORD=secret
PMA_ROOT_PASSWORD=secret
PMA_PORT=8080