Docker AmazonLinux2023+PHP環境時のphp-fpの挙動について
初めて投稿させて頂きます。
Docker-composeで以下のページを参考に「AmazonLinux2023」イメージを使い
PHP8.X環境を構築したのですがブラウザでアクセスすると「503エラー」になる現象が発生しました。
参考ページ
階層
│ docker-compose.yml
│
├─config
│ Dockerfile
│ php.ini
│
└─src
index.php
docker-compose
version: "3"
services:
web:
container_name: web
build: ./config/
volumes:
- ./config/php.ini:/etc/php.ini
- ./logs/:/var/log/httpd/
- ./src/:/var/www/html/
tty: true
privileged: true
restart: always
command: bash -c "exec httpd -DFOREGROUND"
ports:
- "8080:80"
Dockerfile
# ベースイメージ
FROM amazonlinux:2023
# 必要なパッケージをインストール
RUN dnf -y update && dnf -y install \
wget \
tar \
gzip \
gcc \
make \
procps \
which \
git \
autoconf \
httpd \
httpd-devel \
bison \
re2c \
vim \
libxml2-devel \
libcurl-devel \
libpng-devel \
libjpeg-devel \
libicu-devel \
libxslt-devel \
readline-devel \
libedit-devel \
libzip-devel \
sqlite-devel \
bzip2-devel \
oniguruma-devel \
php \
php-fpm \
php-mbstring \
php-mysqlnd \
php-pdo \
php-xml \
php-gd \
php-curl \
php-pear \
php-devel \
php-bcmath
# xdebugをインストール
RUN pecl install xdebug
# PHP動作確認ファイル
WORKDIR /var/www/html
RUN echo "<?php phpinfo(); ?>" > ./index.php
# php-fpm 起動設定
RUN mkdir -p /run/php-fpm && chmod 777 /run/php-fpm
# ポート80を開放
EXPOSE 80
# php-fpmとhttpdを同時に起動
CMD ["/bin/bash", "-c", "php-fpm -D && httpd -D FOREGROUND"]
※今回のコンテナではNginxは利用しない想定です。 2025.01.09 追記
上記設定後、docker-compose up -d --build を行い、「localhost:8080/index.php」にアクセスすると「503 Service Unavailable」になる。
調べたところ下記URLに記載のように「php-fpm」がコンテナ起動時に動いてないみたいでコンテナ内に入り以下のコマンドを実行すると「503 Service Unavailable」が解消されました。
しかし、コンテナを起動するたびにコマンドを実行するのはコンテナ起動時に実行するようにdocker-composeやDockerfileに記述したのですが、現象が解消されません。
コンテナ起動時に「php-fpm」が実行できるようにするにはどのようにしたらいいか教えて頂ますようお願い致します。
0