docker 配置apache和renderd时套接字绑定失败

tv6aics1  于 2023-03-17  发布在  Docker
关注(0)|答案(1)|浏览(135)

我正在尝试按照本教程在switch2osm上构建一个自定义Map服务器切片服务器。
不是像教程中描述的那样使用Ubuntu,我正在使用Docker来处理所有事情(Postgis、Apache等)
我正在尝试构建一个配置了Apache和Renderd的映像(我按照说明找到了here
下面是我的Dockerfile:

FROM httpd:2.4

RUN apt-get update && \
  apt-get install -y libapache2-mod-tile renderd

 RUN a2enmod tile
 RUN a2enconf renderd

 CMD ["renderd", "-f", "&&", "httpd-foreground"]

我在构建和创建容器后一直遇到这个错误:

renderd[1]: Initialising unix server socket on /run/renderd/renderd.sock
socket bind failed for: /run/renderd/renderd.sock

我知道这是一个用户权利的问题,但我不知道如何解决它。
请问有谁能帮我解决这个问题吗?

xzabzqsa

xzabzqsa1#

我发现了同样的问题。我通过sudo chown -R osm:osm /run/renderd更改了/run/renderd的所有者,部分解决了这个问题
然后重新启动渲染进程。
我还尝试过(但失败了)通过修改文件使其永久化:/etc/systemd/system/multi-user.target.wants/renderd.service并在其中指定用户
[Service] ExecStart=/usr/bin/renderd -f User=osm
我确实相信上面的“修复”在过去是有效的,但是现在在Ubuntu 22.04上似乎不起作用

罗杰·赫尔曼回答的补充

要在Ubuntu 22.04上永久保留此属性,请在文件/usr/lib/tmpfiles.d/renderd. conf中将/run/renderd的owner _renderd更改为osm。

相关问题