Docker 容器在运行 php 应用程序时出现 503 错误
Posted
技术标签:
【中文标题】Docker 容器在运行 php 应用程序时出现 503 错误【英文标题】:Docker container giving 503 error while running php application 【发布时间】:2021-11-29 00:12:28 【问题描述】:我有一个 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("\n\n");
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 并且它可以工作...
Success
【讨论】:
是的,现在它正在工作。你能告诉我你是怎么想出这个解决方案的吗?你是怎么调试的?以上是关于Docker 容器在运行 php 应用程序时出现 503 错误的主要内容,如果未能解决你的问题,请参考以下文章
在节点 Docker 容器中运行项目时出现 Tailwind CSS EACCESS 错误(Docker Compose)
尝试将docker容器连接到mongodb时出现异常打开套接字异常
使用 Flyway 和 Docker 容器内的嵌入式 Postgresql 运行测试时出现 java.net.ConnectException
运行命令 **sed** 时出现 docker 容器错误 [重复]
使用 docker-compose 构建容器时出现“php_network_getaddresses:getaddrinfo failed:Temporary failure in name reso