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コマンドを使用して、ジョブキュープログラムをバックグラウンドで実行します。

 

 

 

記事タイトル検索