
目次
- 背景
- フォルダ構成
- php.Dockerfile
- docker-compose.yml
- config/apache2/000-default.conf
- config/php/xdebug-local.ini
- まとめ
- 関連記事
背景
こんにちは。 かりんとうマニア(@karintozuki)です。
最近仕事での開発環境にDockerを使い始めました。
そこで勉強したことを元に、
Code Igniter 4の開発環境構築を紹介します。
こちらのリポジトリをダウンロードして
コンテナを起動すると、http://localhost:80でCode IgniterのWelcomeページが表示されるはずです。
https://github.com/karintomania/docker-ci4
今日はこちらを解説します。
フォルダ構成
フォルダ構成はこちらのリポジトリを参考にさせていただきました。
https://github.com/sprintcube/docker-compose-lamp
こんな感じになっています。
1 | root |
詳細はGitHubを見てもらうとして、
この中でも主要なファイルを紹介していきます。
php.Dockerfile
1 | FROM php:7.4.3-apache |
色々と書いてありますが、
最初のRUNではアパッチの設定をしています。
Code Igniterではrewriteが必要なので、その設定と後述するvirtual hostを有効にする
ディレクションを書いています。
その次はphpのエクステンションのインストールです。
これ以外に使いたいエクステンションがあれば追加してください。
最後のCMDでアパッチの起動コマンドを叩いてます。
これを書くことでコンテナ起動時にアパッチが起動します。
docker-compose.yml
1 | version: "3.7" |
コチフラで大切なのはvolumeでしょうか。
プロジェクトフォルダのhtmlをコンテナ内の/var/www/html/にマウントすることで、
ローカルのソースをコンテナ内から参照できるようにします。
あとはログや設定ファイルをバインドしています。
extra_hostsに書いてあるこちらはxdebug用の設定です。
1 | - "host.docker.internal:host-gateway" |
また、こちらはvirtual host用に設定してあります。
これを書くことで、ローカルのブラウザでhttp://php.local/ へのアクセスが
コンテナの127.0.0.1に繋がるらしいです。
1 | - "php.local:127.0.0.1" |
ちなみに、そのためにはローカルマシンのホスト設定(Macならetc/hosts/)も
変更する必要があるので、お忘れなく。
config/apache2/000-default.conf
これはvirtual host用の設定です。
Code Igniter はver4からセキュリティの理由で、
index.phpがpublic以下に配置されるようになりました。
なので、publicがドキュメントルートになるような設定が必要になります。
1 | <VirtualHost *:80> |
config/php/xdebug-local.ini
特に解説はないですが、xdebugの設定ですね。
こう書くとあっけないですが、
きちんと動くようになるまで大変な道のりでした笑
1 | zend_extension=xdebug |
VS Codeでデバッグするポイントとしては、ローカルではなく、
コンテナ用のPHP Debugの拡張機能をインストールすることです。
Dockerの拡張機能を入れることで、コンテナ内のフォルダをVS Codeで開くことができるようになります。

その後にコンテナ用の拡張機能をインストールすることができるようになります。
アイコンにリモートマーク(?)がついているのが目印です。

まとめ
細かいところは省きましたが、
興味があればGitHubを確認してみてください。
Dockerを使うとクリーンな環境で開発ができるので、
楽しいですね。
それでは今日はこの辺で。
関連記事
こちらの記事もおすすめです。