Dockerを使用したlaravel環境構築
laradock
を使用することで簡単にlaravelの環境構築をすることができるので、以下に手順をまとめる。
開発環境
MacOS Mojave
既にDocker
Git
はMacに導入済として下記記述します。
laradockのダウンロード
Gitを使用して、任意のフォルダにlaradockをダウンロードします。
git clone https://github.com/Laradock/laradock.git
// laradockへ移動
cd laradock
// 公式ページの記載通り、下記コマンドを入力
cp env-example .env
Mysqlのバージョンを指定(現行最新版の8だと、通常とは違う認証になり、詰まる可能性大。指定がなければ、5.7を使用したほうが無難)
// .envを開き、"MYSQL_VERSION=latest" を以下のように変更
MYSQL_VERSION=5.7
コンテナの作成
開発に必要なプログラムを指定し、コンテナを作成。なお、プログラムを指定しないとすべてのコンテナを作成しようとするため、時間がかかります。
通常のlaravel開発であれば、下記コマンドの指定で問題ないかと思います。
docker-compose up -d nginx mysql workspace phpmyadmin
終了後、http://localhost
にアクセスすると、404 Not Found
が表示されます。
これにより、Nginxに無事アクセスできたことが確認できます。
laravelアプリの作成
コンテナのworkspace
内にて、laravelアプリを作成します。
// docker ps にて、workspaceのコンテナID確認後、下記コマンドでコンテナ内に入る
docker-compose exec -it workspaceのコンテナID bash
// コンテナに入り、"/var/www$"にて、下記コマンドを実行。バージョンは5.5以外でも変更できます。
composer create-project laravel/laravel sample --prefer-dist "5.5.*"
これによって、sample
というアプリファイルが作成されます。
次に、laradockディレクトリの.env
に、このアプリを作成したことを伝えるため、下記のように記述します。
### Paths #################################################
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../sample
設定を反映させるため、dockerを再起動させます。
// 停止
docker-compose stop
// 再起動。以後は、nginxとmysqlのみを指定すればよい
docker-compose up -d nginx mysql
再度ブラウザでhttp://localhost
にアクセスするとlaravelの画面が表示されます。
MySQLとの接続
MySQLコンテナと、laravelのDB設定を合わせます。
sample
フォルダ内の.env
ファイルを開き、下記のように記述。
この内容はlaradockフォルダの.env
内のMySQLの記述と合わせたものになります。
// laravelアプリ内の.envファイル
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
参考:laradockフォルダ.env
のMySQL記述内容
### MYSQL #################################################
MYSQL_VERSION=5.7
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
再度、workspace
コンテナに入り、migrateを実行
php artisan migrate
MySQLコンテナに入り、テーブルが確認できれば完了です。
mysql -u default -p -h 127.0.0.1
show tables from default
参照
Laravel & Docker 環境構築 with Laradock
Laradockを使ったLaravel開発環境構築のやさしい解説
Laradock公式サイト