はじめに
Laravelの開発環境を構築するには様々な方法があります。
その中でLaradockはdockerを用いて素早く構築できる有力な選択肢の一つです。
しかしそれでも数ステップの作業を行う必要があります。
そこでもっと簡単にできないかということで試行錯誤しましたのでご紹介します。
特徴
- 何と言っても1コマンドですぐ構築
- 必要なものは同梱してビルドしているので、ローカルでビルドする必要がありません
- 好きなバージョンで開発可能(現在5.1~5.5 LTSを用意しています)
- Alpine Linuxがベースなので軽量です
- cronエントリーを設定済みなのでタスクスケジュールの機能が使えます
使用方法
あらかじめDockerやdocker-composeのインストールが必要です。
起動
docker-compose up -d
しばらくするとhttp://localhost
でアクセス可能です。
laravel
ディレクトリが作成されその中に全ソースが配置されています。
お好みのIDE等で開発できます。
artisan
コマンドについて
デフォルトで作成される.env
にはDBホストとしてcomposeで同時に作成されるDBサーバーを指定しています。
そのため php artisan migrate
等を行ってもホストから見える接続情報が異なるためエラーが出ます。
対処法としてdockerコンテナ内で作業を行います。
docker exec -it laravel-app sh
もしくはコンテナ内に入らずコマンドを実行します
docker exec -it laravel-app php artisan migrate
削除
docker-compose kill
docker-compose rm -f
rm -rf laravel
各コンテナの構成について
web
ベースにオフィシャルのnginxイメージを使用し、gid uidともに1000のwww
ユーザーを作成しています。
app
ベースにオフィシャルのphpイメージを使用し、gid uidともに1000のwww
ユーザーを作成しています。
web、app共に同一idのwwwユーザーを作成することで両コンテナからphp-fpm.sockの読み書きをできるようにしました。
その後にlaravelで必須のパッケージ群をインストールし、composerでLaravelプロジェクトを作成し composer install
で依存するライブラリをインストールしておきます。
appコンテナ起動時にdocker-entrypoint.sh
で.envの設定やDBコンテナが立ち上がるまで待機する処理を実行します。
終わりに
今後redis等のコンテナも起動するように設定し、Laradockに近づけて行きたいと思います。