Laravel Docker

DockerでLaravel環境を構築するまで

LaravelをDockerで立ち上げるって、正直めんどくさくないか?

Dockerよくわかっていないやつ(俺も含めて)のために、チーム開発の際にLaravelをDockerで立ち上げるためのサンプルコードや実際の立ち上げ方を記録してみた。

環境

OS Ubuntu 18.04
Docker version 19.03.12

前提

Docker及びdocker-composeのコマンドはインストール済みという想定で進める。

まだっていう人は公式とかQiitaとかみればいいんじゃないっすかね?

とりあえず公式

https://docs.docker.com/get-docker/

https://docs.docker.jp/compose/install.html

準備:GitHubリポジトリのインストール

とりあえずは俺が作ったこのリポジトリ(https://github.com/smithshiro/my-laravel-docker-env)をインストールしてくれ、話はそれからである。

構築

generate_local_idsを実行

生成したコンテナにホスト側のユーザID、ユーザグループを生成するために以下コマンドを実行

すると.envが生成される。

docker-composeでコンテナを立ち上げる

Nginx, PHP-fpm, MySQL, node(あとでnpmとか使いそうだし・・)のサービスコンテナを立ち上げる。

docker-compose.yaml

docker-compose ps で立ち上がっているか確認

こんな感じなら大丈夫でしょう。

Laravelをインストール

projectディレクトリにLaravelのソースをインストール。

それ用のスクリプトとしてinstall-laravel.shがあるのでそれを実行。

ただこの状態でlocalhost:8000で開いてもエラー画面になってしまう。

なので、

  • ファイルの所有権限、実行権限を修正
  • DB接続情報を修正

を行っていく必要がある

ファイルの所有権限、実行権限を修正

インストールしたLaravelプロジェクトはコンテナ内部で生成されるためソースの所有権限はrootになってしまっているので、それをホストユーザの所有権限にする。(コンテナ生成時にそこまでやれやって意見はごもっとも、ただそこまでモチベが上がらんかったw

所有権限

実行権限(storage配下をコンテナ内のユーザでも使用できるようにする)

DB接続情報を修正

project/.envにMySQLへの接続設定があるので、ホスト名、ユーザ名、パスワードを変更する

DB_HOSTはdocker-compose.ymlのservicesの内のmysqlを参照している。

主にここらへんをいい感じに割り当てればOK。

ここまでで設定はおしまい、いつもの画面が出れば完了。

開発している途中で都度バグも出るかもしれんがそこはご愛嬌w

-Laravel, Docker

© 2021 Shiro's secret base