Skip to content

blancpanda/docker-laravel-2022

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel 用 Docker 構成 2022年版

  • Jetstream (inertia) を使う前提

コンテナの起動/停止

初回

docker compose --profile extra up -d --build
docker compose --profile extra down

2回目以降

docker compose up -d
docker compose down

プロファイル extra について

node コンテナを起動しておくと watch で待機するようになるので、ファイルの変更にあわせて自動でコンパイルが行われる

普段は任意のタイミングで npm run dev を実行したいので、別プロファイルにして node コンテナのみ起動しないようにしている

コマンドのショートカット

コマンドが長いので bin配下にショートカットのためのスクリプトを用意してある

実行できるようにパーミッションを変更する

chmod u+x bin/*

以下のような使い方ができる

bin/npm run dev

Laravel のインストール

app コンテナに入り、Laravel と Jetstream をインストール

docker compose exec app bash
composer create-project --prefer-dist "laravel/laravel=9.*" .
php artisan storage:link
chmod -R 777 storage bootstrap/cache
composer require laravel/jetstream
php artisan jetstream:install inertia
exit

node コンテナで リソースのコンパイル

bin/npm install
bin/npm run dev

.env を編集してデータベースの接続先を設定

# :
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=phper
DB_PASSWORD=secret
# :

app コンテナでマイグレーション

bin/artisan migrate

VSCode の設定ファイル

  • XDebug を使ったデバッグ実行のための構成ファイル .vscode/launch.json を用意してある
  • Vue 用の拡張 Vetur を使う関係で、Laravel の階層が異なるので、 .vetur.config.js で指定している
  • Vetur はプロジェクトルートで jsconfig.json か tsconfig.json を探すので、Laravel インストール後に laravel ディレクトリ直下に作成する
{
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "@/*": ["resources/js/*"]
        }
    },
    "exclude": ["node_modules", "public"]
}

db コンテナ内で mysqldump を使って出力したテーブル定義の xml に xslt をあててマークダウンのテーブル定義書を生成できるようにしている

mysqldumpでテーブル定義のxmlを出力

docker compose exec db sh
mysqldump --no-data --xml -u root -p laravel > ./work/laravel.xml
Enter password: secret
exit

コメントを出力するようにしているので、日本語名や説明を設定しておくとよい。

xsltをあててマークダウンに変換

xsltproc -o laravel/database/README.md tables-mdstyle.xsl db-work/laravel.xml

Laravel をこの Docker 構成ごと git 管理下においた場合の clone からの再構築

初回起動時は extra プロファイルをつけて up

※ [repository], [project-dir] は各環境に置き換える

git clone [repository]
cd [project-dir]
chmod u+x bin/*
docker compose --profile extra up -d --build
docker compose exec app bash
composer install
cp .env.example .env
php artisan key:generate
php artisan storage:link
chmod -R 777 storage bootstrap/cache
exit
bin/npm install
bin/npm run dev
bin/artisan migrate

初回起動時は extra プロファイルをつけて down

docker compose --profile extra down

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published