2つのプロセスを起動するDockerfileのソースコード(Linux2)
# ベースイメージを指定 FROM amazonlinux:latest # パッケージをインストール RUN amazon-linux-extras install -y php7.4 && \ yum update -y && \ yum install -y httpd supervisor # Apacheの設定ファイルをコピー COPY apache.conf /etc/httpd/conf.d/ # Supervisorの設定ファイルをコピー COPY supervisord.conf /etc/supervisord.d/ # ジョブキュープログラムをコピー COPY jobqueue.php /var/www/html/ # Webサーバーとジョブキューを起動するためのスクリプトをコピー COPY start.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/start.sh # コンテナが起動したときに実行するコマンド CMD ["/usr/local/bin/start.sh"]
上記のDockerfileでは、Amazon Linux 2にPHPとApacheをインストールして、Webサーバーとジョブキューを起動します。WebサーバーはApacheで、ジョブキューはPHPスクリプトを使用してバックグラウンドで実行されます。
COPY
コマンドを使用して、設定ファイルやプログラムファイルをコンテナにコピーし、CMD
コマンドを使用して、start.sh
スクリプトを実行して、Webサーバーとジョブキューを起動します。
以下は、start.sh
スクリプトの例です。
#!/bin/bash # Apacheをバックグラウンドで起動 /usr/sbin/httpd -DFOREGROUND & # ジョブキュープログラムを起動 /usr/bin/php /var/www/html/jobqueue.php &
上記のスクリプトでは、httpd
コマンドを使用して、Apache Webサーバーをバックグラウンドで起動します。次に、php
コマンドを使用して、ジョブキュープログラムをバックグラウンドで実行します。