kapieciiのブログ

日々学んだことを残しておくためのブログです。このブログはGoogle Analyticsを利用しています。

docker-compose+PHP+ApacheでPHPを実行する

Webアプリをコンテナ上で動作させるためには、WebサーバやDBサーバの複数のコンテナを連携させる必要があります。
複数のコンテナを設定したり操作するためのツールがdocker-composeです。
今回はdocker-composeを使って、前回作成したphpinfo()を表示するだけのWebサーバを実行してみます。

前回の内容はこちら。

kapiecii.hatenablog.com

目次

環境

Ubuntu18.04

docker-composeインストール

こちらの公式ドキュメントに従ってインストールします。

docs.docker.com

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

バージョンを確認します。

$ docker-compose --version
docker-compose version 1.24.0, build 0aa59064

docker-compose.yaml作成

docker-composeでは、docker-compose.yamlファイルにコンテナの設定を記載していきます。
今回はこのようなファイル構成で、docker-compose.yamlを作成しました。

ファイル構成

$ tree .
.
├── docker-compose.yml
├── html
│   └── index.php
└── web
    └── Dockerfile

2 directories, 3 files

docker-compose.yamlのリファレンスはこちら。

docs.docker.com

今回は極力シンプルにしていますが、コンテナのパーティションの設定など、かなり細かな指定ができるようです。

$ cat docker-compose.yml 
version: "3.7"

services:
    web:
        build: "./web"
        container_name: "php_apache_image"
        ports:
            - "80:80"
        volumes:
            - "./html/:/var/www/html/"

Dockerfileは前回と同じです。

$ cat web/Dockerfile 
FROM php:7.3.4-apache

dockerイメージをビルドして実行

docker-composeでイメージをビルドして実行します。

$ docker-compose build --no-cache
Building web
Step 1/1 : FROM php:7.3.4-apache
 ---> 1dffbbe4a5d3

Successfully built 1dffbbe4a5d3
Successfully tagged sample2_web:latest
$ docker-compose up

ブラウザから確認してみます。 http://localhost:80/

f:id:kapiecii:20190430003339p:plain

docker-composeからdocker imageを作成してコンテナを実行することができました。

最後に

docker-composeは、dockerコマンドよりもシンプルなコマンドで実行できて便利ですね。 次はWebサーバのコンテナとDBサーバのコンテナの連携などを試していこうと思います。

kapieciiのブログについてお問い合わせがある場合、下記のフォームからご連絡をお願い致します。
お問い合わせはこちら