
目次
背景
こんにちは。 かりんとうマニア(@karintozuki)です。
今回はDocker内にApache、MySQLを使ってLaravelアプリを動かせるような設定を紹介します。
前提条件
- Docker: v20.10.17
- MacOS: Monteray
GitHubにソースをのっけてあります。
プロジェクト構成
プロジェクトの構成は以下のようになります。
1 | プロジェクトルート |
Dockerfile
PHPのDockerfileは以下のようになります。
1 | FROM php:8.1-apache |
割とコメントに大事なことは書いてあるので、これに関しては特に難しいことはないかと思います。
設定ファイル
PHPとApacheの設定ファイルはconfigフォルダ内に入れています。
それぞれ中身は以下のようになっています。
xdebug-local.ini
1 | zend_extension=xdebug |
これはなくても大丈夫ですが、xdebugを使いたい人はどうぞ。
4行目のhost.docker.internal
でコンテナ内からあなたのマシンのlocalhost
を参照できます。
これにより、VSCodeなどでxdebugクライアントを立ち上げたときに、コンテナ内からクライアントに接続できます。
docker-compose.yml
docker-compose.ymlは以下です。
1 | version: "3.7" |
基本的に大事なことはコメントに書いてあるのと、そんなに難しいことをしていないです。
ただ、MySQLのボリュームについて少し解説します。
1 | volumes: |
この箇所で、コンテナ内の/var/lib/mysql
をlaravel-db
という名前付きボリュームに保存しています。
この設定がなくても大丈夫なのですが、その場合、コンテナに紐付いた匿名ボリュームにデータが保存されることになります。
その場合、コンテナを消したときにボリュームも一緒に消えてしまいます。
名前付きボリュームであれば、なにかの理由でコンテナを消したい、消してしまったときにもボリュームは保存されるので安心です。
Laravelプロジェクトを作成
以下のコマンドでコンテナをビルド&起動します。
1 | docker compose up -d |
次にLaravelのプロジェクトをcomposerを使ってダウンロードします。
しばらくかかります。
1 | docker exec -it laravel-php composer create-project laravel/laravel . |
私の環境では上記コマンドを実行した後にコンテナの再起動が必要でした。
1 | docker compose down && docker compose up -d |
サイトにアクセスする
以上でDockerコンテナ内にLaravelサイトが立ち上がったはずです。
以下のURLにアクセスして動作確認をしましょう。
http://localhost:8080
Laravelのデフォルトページが表示されたでしょうか。

DB接続の確認
DBに接続できているかLaravel tinkerを使って確認します。
以下のコマンドを実行してtinkerを起動します。
1 | docker compose exec -it laravel-php php artisan tinker |
tinkerはPHPとLaravelのコードを実行できる、いわゆるREPL環境です。
以下のコードでmysql接続が確認できます。
1 | DB::connection('mysql')->getPdo(); |
まとめ
LaravelをPHP8、MySQL、Apache環境で動かすためのDocker設定を紹介しました。
ローカルにPHPをインストールすることなくLaravelでの開発ができるので嬉しいですね!
お役に立てたなら幸いです。
それじゃ今日はこの辺で。
関連記事
こちらの記事もおすすめです。
PR
あなたの会社はあなたの技術を評価してくれていますか?
技術力を高めようと頑張っているのに、
技術が評価されないような会社にいたらそれは良い環境なのでしょうか?
エンジニアとして技術を高めたいのなら環境を選ぶことも大事です。
レバテックキャリア
エンジニアとして働いていて実務経験があるなら、
求人数の充実具合からレバテックキャリアがおすすめです。
IT転職ではデファクト・スタンダードですね。
▼レバテック キャリア 登録はこちら▼
Tech Clips
Tech Clipsは年収500万以上&自社サービスを持った会社に特化した求人サイトです。
首都圏限定になってはしまいますが、
収入を増やしたい、自社サービスを持った企業への転職をしたい人におすすめです。