我正在尝试按照本教程在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
我知道这是一个用户权利的问题,但我不知道如何解决它。
请问有谁能帮我解决这个问题吗?
1条答案
按热度按时间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。