Docker + Apache + PostgreSQL + PHP (Mac用)

2018.10.01.月
技術

ワンコマンド開発環境構築を求めて。。。


お久しぶりです。開発部の高見です。
一から手作業でローカル開発環境を作ることにツラさを覚え出した今日この頃。
その苦痛から解放してくれたのがDockerでした。。。
ということで、Dockerによる開発環境構築について、個人的に一番しっくり来たものを紹介したいと思います。

用意するもの


Docker for Mac

ディレクトリ構成



各種ディレクトリ・ファイルの説明


./docker-file/web/Dockerfile

(1) PHPの公式イメージを使います。(バージョンはご自由に。 php:[バージョン]-apache)

(2) 「docker-php-ext-install」でPostgreSQL関連のPHPエクステンションをインストールします。

(3) PHP設定ファイルをコンテナにコピーします。



./docker-file/web/php.ini

PHP設定ファイルになります。
log_errors、error_log、error_reportingを設定しないと、エラーログが出力されません。



./docker-entrypoint-initdb.d/

初回起動時に実行する.shや.sqlを置く用のディレクトリです。
DBやテーブルを作成する.sqlや.shを置いておくと便利です。

./volumes/web/html/

ソースを置く用ディレクトリです。

./docker-compose.yml

(1) ./docker-file/web/Dockerfileからイメージを作成します。

(2) コンテナ側の/var/www/htmlとホスト側の./volumes/web/htmlを共有

(3) PostgreSQLの公式イメージを使用します。

(4) コンテナ側の/docker-entrypoint-initdb.dとホスト側の./docker-entrypoint-initdb.dを共有



環境を構築する


コンテナをビルド&起動

起動(ビルドされていない場合、ビルドも行ってくれる)



ビルドのみ行いたい場合は、以下のコマンドになります。



ブラウザでアクセス

./volumes/web/html/以下にindex.phpを置き、
「http://localhost:8080」にアクセスして、画面が表示されれば完成です。

終わりに


今回はDockerによる開発環境構築方法を紹介しました。
ローカル開発環境構築に飽きてきた方や嫌になってきた方など、
ぜひ、Dockerでお手軽に環境を作ってみてください。

キー・ポイントでは新しい技術が好きな人を募集しています。

高見

高見

開発をしています。 最近は、hubotをちょこちょこいじっています。 AIにも興味があり、AIについても勉強していくつもりです。