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 件のコメント:
コメントを投稿