LoginSignup
3

More than 3 years have passed since last update.

Dockerでlaravelの環境構築

Last updated at Posted at 2019-05-23

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

Laradock公式サイト

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公式サイト

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
3