1

我正在尝试在代码引擎项目中部署应用程序。容器镜像非常标准:docker.io/library/httpd。我在配置向导中所做的只是将端口从 Code Engine 默认的 8080 更改为端口 80。

代码引擎回来了:

修订未能以“退出代码 1”开始。检查您的图像和配置。

在日志中我发现了这两行:

(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80

为什么?

4

1 回答 1

0

我不知道你的问题“为什么”的答案,除了我看到 Stackoverflow 上的一些人提到操作系统保留了高达 1024 的范围。我可以在本地端口 80 上运行我的 httpd,但在 IBM Code Engine 中我必须更改为 8080。

这就是我设法让它运行的方法:

正如这篇文章所暗示的那样,我编辑了 httpd.conf :

“在 DockerHub 页面上有关于如何执行此操作的提示。必须获取替代配置文件并通过 Dockerfile 添加到容器中。

首先获取配置文件的副本:

docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf

然后编辑 my-httpd.conf 文件并修改端口:

Listen 8080

最后将复制它的指令添加到 Dockerfile 中:

COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf"

于 2021-04-21T18:11:48.403 回答