Docker-composeでNginx+PHP環境構築【実践記録11】

実践記録11

前回はDockerを使ってBasic認証機能付きのNginxコンテナを作成してみました。
今回は少し拡張して、Nginx+PHPの実行環境をDocker-composeをインストールして作ってみたいと思います。

実施環境

以下のVagrantfileで作成した環境で作業しています。

Docker-composeのインストール

以下の公式サイトの内容を参考にしながら
まずはDocker-composeをインストールしていきたいと思います。

Docker docs

以下のコマンドでDocker-composeをインストールします。

sudo curl -L “https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

その後以下のコマンドで実行権限を与えてやればインストール完了のようです。

sudo chmod +x /usr/local/bin/docker-compose
以下のコマンドでdocker-composeが導入されているか確認します。
docker-compose –version
バージョンが表示されればOKです

nginx+php環境をコンテナで作成

nginxについては前回の実践記録で自作したDockerfileを流用しようと思います。
以下がnginx用のDockerfileとなります。

使用するdefault.confについては以下の通りです。

phpについてはdocker hubで公開されているものをほぼそのまま流用し、
トップページとなるindex.phpの配置定義だけ追加した以下のDockerfileを使用します。

php-fpmとはnginxをwebサーバとして選択した場合に、PHPを動作させる為に必要なソフトウェアのことです。
php-fpmの詳細については以下の記事などが参考になると思います。

参考記事

Dockerfileが準備できたところで、
今度はDocker-compose用のファイルを準備していきます。

version:Docker-compose.ymlファイルのバージョンを指定します。
services:以降にコンテナ定義を記載します。
build:Dockerfileまでのパスを記載します。
ports:ホスト側とコンテナ側のポートマッピングを行います。
depends_on:コンテナの依存関係を記載します。

では準備ができたところで以下のコマンドで起動してみたいと思います。
※-dオプションを付けないと完了時にコンテナが停止してしまいます。

docker-compose up -d
完了したらアクセスしてみましょう。
※192.168.33.20のサーバ上にコンテナを作成しています。
まずはこんな感じでBasic認証がかかります。
ユーザー名とパスワードを入力したら以下の様な画面が出てくれば
index.phpに記載したphpinfo()の内容が出力されているので、phpと連携できています。
※もっと色々表示されますが、長いので上の方だけ切り取っています。
Dockerを使えばさくっと環境構築できるといわれていますが、
やはり見聞きするだけでなく、自分で構築して体感するのが大切ですね!
次回以降docker-composeをインストールした状態で始められるよう、Vagrantfileを以下の様に修正して今回はここまでにしたいと思います。
次は以下の記事にてNginx+PHP+MySQLの3層構造に派生させていきます。

関連記事

実践記録12前回はDoker-composeを使用してNginxとPHPコンテナを作成、連携させてみました。今回はそれを更に派生させて、Nginx+PHP+MySQLの3層構造を構築してみようと思います。おまけでNginxに[…]