Docker #19:CentOS+Apache+PHP環境 (5)

前回からの続き…
Docker #18:CentOS+Apache+PHP環境 (4)

PHPは正常動作するようになったので、Dockerfileを変更しイメージを再作成してみる。

1) Dockerfile修正
FROM centos:latest
RUN dnf -y update && \
    dnf -y install httpd php
EXPOSE 80
RUN ["mkdir", "-p", "/run/php-fpm"]
COPY startup.sh /startup.sh
RUN chmod 744 /startup.sh
CMD ["/startup.sh"]
・1行目のイメージ名は "centos:latest" (CentOS 8を使用)
・5行目 /run/php-fom フォルダの作成を追加
・6行目 php-fpmとApacheを起動するスクリプト(startup.sh)をコピー
・7行目 startup.shの権限を744(所有者は実行可)に変更
・8行目 startup.shの実行

2) startup.sh作成
DockerfileにてCMDコマンドを使い php-fpm と Apache を起動させたいが、DockerfileのCMDコマンドは1つしか書けない、とのこと。
https://docs.docker.jp/engine/reference/builder.html#cmd
その代替として、実行したいコマンドをシェルスクリプト化し、Dockerfileからはシェルスクリプトを実行するように修正する

#!/usr/bin/env bash
/usr/sbin/php-fpm
/usr/sbin/httpd -D FOREGROUND


ちなみに、Dockerfileのコマンド RUN と CMD は似たようなコマンドであるが、
・RUN は Dockerイメージを作成するために使用する
・CMD は 作成したDockerイメージよりコマンドを実行する
の違いがある

以降の手順は Docker #15:CentOS+Apache+PHP環境 と同じである。

3) イメージをビルド
cd c:/Users/user/php
docker build -t php .


4) コンテナ実行
docker run -it --rm -p 80:80 -v //c/Users/user/php/public-html/:/var/www/html/ php


5) 動作確認
ブラウザで http://192.168.99.102 へアクセス

→ phpinfoが表示された


0 件のコメント:

その他の記事