Контейнер Docker выдает ошибку 503 при запуске php-приложения

#php #docker #dockerfile #http-status-code-503

Вопрос:

У меня есть файл dockerfile для создания образа с установленным php

 FROM centos:latest
RUN yum install  net-tools -y
RUN yum install  httpd -y
RUN yum install php -y
ENV REFRESHED AT "04-06-2016"
ADD index.php /var/www/html/
 

в index.php файл выглядит так

 <?php
print("welcome to php");
print("nn");
print `ifconfig`;
?>
 

Я создаю образ из команды

 docker build -t myimage .
 

затем я запускаю контейнер из команды

 docker container run -it --name os1 myimage
 

затем из контейнера я запускаю службу из команды

 usr/sbin/httpd
 

это дает мне это предупреждение

 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
 

Но если я выполняю команду curl 172.17.0.2 с моего хоста, она выдает мне этот вывод

 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>503 Service Unavailable</title>
</head><body>
<h1>Service Unavailable</h1>
<p>The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.</p>
</body></html>
 

Я не понял, почему я получаю эту ошибку .
Я попытался запустить каждую команду из файла dockerfile в контейнере , затем она работает нормально , но создание образа из файла dockerfile приводит к этой ошибке.

Ответ №1:

Вам не хватает каталога, который позволяет создавать сокеты php (IDK, почему он отсутствует)

Вам просто нужно создать этот каталог при создании образа Docker:

 FROM centos:latest
RUN yum install  net-tools -y
RUN yum install  httpd -y
RUN mkdir /run/php-fpm
RUN yum install php -y
ENV REFRESHED AT "04-06-2016"
ADD index.php /var/www/html/
 

Также, оказавшись внутри контейнера /usr/sbin/php-fpm , запустите после /usr/sbin/httpd этого php-fpm, и он заработает…
Успех

Комментарии:

1. Да , теперь это работает . можете ли вы рассказать мне, как вы нашли это решение? как вы это отладили?