LoginSignup
5
11

More than 5 years have passed since last update.

Dockerを用いてLaravelの開発環境を1コマンドで構築

Last updated at Posted at 2017-07-11

はじめに

Laravelの開発環境を構築するには様々な方法があります。
その中でLaradockはdockerを用いて素早く構築できる有力な選択肢の一つです。
しかしそれでも数ステップの作業を行う必要があります。
そこでもっと簡単にできないかということで試行錯誤しましたのでご紹介します。

shomatan/laravel-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に近づけて行きたいと思います。

5
11
0

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
5
11