问题描述
我正在尝试在 Code Engine project 中部署应用程序。容器映像非常标准:docker.io/library/httpd。我在配置向导中所做的只是将端口从代码引擎默认的 8080 更改为端口 80。
代码引擎回来了:
在日志中我发现了这两行:
(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
为什么?
解决方法
我不知道你的问题“为什么”的答案,除了我看到 Stackoverflow 上的一些人提到操作系统保留了高达 1024 的范围。我可以在端口 80 上本地运行我的 httpd,但在 IBM 代码引擎中,我必须更改为 8080。
这是我设法让它运行的方式:
我按照 this post 的暗示编辑了 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
"