公式マニュアル
https://laradock.io/getting-started/
github
https://github.com/laradock/laradock
Ubuntu 18.04.3 LTS
docker 19.03.5
docker-compose 1.25.0
# git clone https://github.com/laradock/laradock.git
- laradock
- blog(laravelプロジェクトディレクトリ)
# cd laradock
# vi .env
APP_CODE_PATH_HOST=../blog/
下記を追記
# sudo vi /etc/hosts
127.0.0.1 blog.test
# cp nginx/sites/laravel.conf.example nginx/sites/laravel.conf
# vi nginx/sites/laravel.conf
server_name blog.test;
root /var/www/blog/public;
nginx mysqlを起動します。
Webサーバーコンテナとphp-fpmは依存している為、nginxやapacheを起動するとphp-fpmコンテナも自動起動します。
docker-compose up -d nginx mysql
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php -r "if (hash_file('sha384', 'composer-setup.php') === 'baf1608c33254d00611ac1705c1d9958c817a1a33bce370c0595974b342601bd80b92a3f46067da89e3b06bff421f182') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"
# mv composer.phar /usr/local/bin/composer
https://getcomposer.org/download/
https://qiita.com/kakijin/items/02364adacf36410f449e
# composer create-project --prefer-dist laravel/laravel blog
https://qiita.com/dokkoisho/items/651a65ddcce25e9921b9
パーミッションを777に変更(よくないが、とりあえず)
# chmod 777 -R blog
LaradockとMySQLのアカウント設定を合わせる
.env(laradock)
### MYSQL #################################################
MYSQL_VERSION=latest
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
.env(Laravel)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=default
DB_PASSWORD=default
# composer require laravel/ui --dev
# php artisan ui vue --auth
# docker-compose exec workspace bash
# cd blog
# npm install
# npm run dev
defaultとrootの認証方式を変更する
https://qiita.com/kosawa/items/4fdbfbd47b2ba32f9f35
認証方式をmysql_native_passwordに変更します。
mysql> ALTER USER `root`@`localhost` IDENTIFIED WITH mysql_native_password BY 'root';
mysql> ALTER USER `root`@`%` IDENTIFIED WITH mysql_native_password BY 'root';
mysql> ALTER USER `default`@`%` IDENTIFIED WITH mysql_native_password BY 'secret';
mysql> flush privileges;
mysql> SELECT user,host,plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| default | % | mysql_native_password |
| root | % | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
※FLUSH PRIVILEGES が必要なのは mysql スキーマのテーブルを直接変更したとき