Laradockを利用したLaravel環境構築
calendar_today
2022-06-09
insights
views: 220
thumbnail images

はじめに

ここではLaradockを利用したLaravelの環境構築の手順を記す。

前提条件

  • Docker Desktopがインストールされていること
    • WindowsではWSL2をオフにした方が動作が速い
    • MacではgRPC FUSEをオンにした方が動作が速い

2022/2~ Docker有料化に注意すること: 従業員250人以上 or 売上利益1000万ドル以上で有料

忙しい人の為のLaradock構築手順

  1. {project} >
    • git clone https://github.com/Laradock/laradock.git
    • git clone {プロジェクト@SSH}
  2. {project}/laravel >
    • .env設定
  3. {project}/laradock >
    • nginx設定
    • mysql設定
    • .env設定
    • docker-compose up -d mysql nginx workspace
    • docker-compose exec --user=laradock workspace bash
  4. workspace内 /var/www/laravel$
    • composer update
    • php artisan migrate
    • php artisan db:seed
    • php artisan key:generate
    • npm i
    • npm run dev

詳細な手順

フォルダの配置

プロジェクトフォルダ内の階層構造をこんな感じにする

{プロジェクト名}
├ laradock
└ laravel

プロジェクトフォルダの作成

mkdir {プロジェクト名}
cd {プロジェクト名}

Laradock配置

git clone https://github.com/Laradock/laradock.git

Laravelプロジェクト配置

git cloneしてくるときにフォルダ名を"laravel"に変更する
HTMLでもSSHでもよい。
SSHの設定はこちら: GitHubでssh接続する手順公開鍵・秘密鍵の生成から - Qiita

git clone {プロジェクト}.git laravel

Laravel設定

.env の設定をする
DB名は任意、この後利用するので忘れずに

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE={プロジェクトDB名}
DB_USERNAME=default
DB_PASSWORD=secret

Laradock設定

nginx設定

nginx/sites/default.conf を以下のように設定

- root /var/www/public;
+ root /var/www/laravel/public;

mysql設定

mysql/docker-entrypoint-initdb.d/ 内、createdb.sql.example をコピーして createdb.sql を作成

mysql/docker-entrypoint-initdb.d/createdb.sql を以下のように設定

プロジェクトDB名はLaravel設定と同じにすること

- #CREATE DATABASE IF NOT EXISTS`dev_db_1` COLLATE 'utf8_general_ci' ;
+ CREATE DATABASE IF NOT EXISTS`{プロジェクトDB名}` COLLATE 'utf8_general_ci' ;

- #GRANT ALL ON `dev_db_1`.* TO 'default'@'%' ;
+ GRANT ALL ON `{プロジェクトDB名}`.* TO 'default'@'%' ;

.env設定

.env.example をコピーして .env を作成

.env を以下のように設定

プロジェクト名は任意の文字列を設定

- APP_CODE_PATH_HOST=../
+ APP_CODE_PATH_HOST=../laravel

- APP_CODE_PATH_CONTAINER=/var/www
+ APP_CODE_PATH_CONTAINER=/var/www/laravel

- DATA_PATH_HOST=~/.laradock/data
+ DATA_PATH_HOST=~/.laradock/{プロジェクト名}

- COMPOSE_PROJECT_NAME=laradock
+ COMPOSE_PROJECT_NAME={プロジェクト名}-laradock

Laradock起動

cd {プロジェクト名}/laradock
docker-compose up -d mysql nginx workspace

初回はコンテナを生成するために時間がかかる。

Windowsの場合

windowsでは、パスを通すか否かの通知がwindowsに7つほど来るので全てOKする。

M1 macの場合

またM1 macではそのままではmysqlが起動しないので以下のリンク内、Dockerfileのやり方を実施する。
M1 Mac で Docker mysql イメージをビルドする - Qiita

コンテナ内の作業

コンテナが起動したら、以下のコマンドでコンテナに移動する。

docker-compose exec --user=laradock workspace bash

そして /var/www/laravel 内で以下の作業をする。

  • composerインストール
  • migration
  • シード作成
  • laravelキー生成
  • npmインストール
  • npmコンパイル
cd laravel
composer update
php artisan migrate
php artisan db:seed
php artisan key:generate
npm i
npm run dev

また必要に応じて

php artisan storage:link
chmod 777 -R public storage

これで完了。

calendar_today
2022-06-09
insights
views: 220