改变添加文件的权限,以码头工人卷(Changing permissions of added fil

2019-10-21 12:53发布

在泊坞最佳实践指南它指出:

我们强烈建议您使用体积图像中的任意可变的和/或用户维修的部件。

并通过查看如源代码cpuguy83 / nagios的图像此可以清楚地看到完成,如一切从到Nagios的Apache配置目录提供的卷。

然而,看着同一图像(Nagios的和CGI的脚本),Apache服务是为运行nagios默认用户。 所以我现在处于困境,因为我似乎无法弄清楚如何添加,以例如定义多个主机的Nagios的监测我自己的配置文件。 我试过了:

FROM cpuguy83/nagios
ADD my_custom_config.cfg /opt/nagios/etc/conf.d/
RUN chown nagios: /opt/nagios/etc/conf.d/my_custom_config.cfg
CMD ["/opt/local/bin/start_nagios"]

我建立正常,并尝试以运行它docker run -d -p 8000:80 <image_hash>但是我得到以下错误:

错误:无法打开配置文件“/opt/nagios/etc/conf.d/my_custom_config.cfg”阅读能:权限被拒绝

果然,在文件夹中的权限样子(惠斯特apache的进程作为nagios ):

# ls -l /opt/nagios/etc/conf.d/
-rw-rw---- 1 root root 861 Jan  5 13:43 my_custom_config.cfg

现在, 这已经回答过了(为什么在Dockerfile不CHOWN工作) ,但比“改变了原来Dockerfile”其他没有妥善的解决方案已经提出。

说实话,我觉得有一些在这里核心理念,我还没有掌握(因为我看不到宣称的配置目录的数量还是比为根以外的任何其他正在运行的服务点) - 因此提供了Dockerfile如上(下文码头工人加入多个卷最佳实践)是解决/问题:

  • 要改变NAGIOS_USER / APACHE_RUN_USER为“根”和运行一切,根源在哪里?
  • 要卸下Dockerfile VOLUME(音量)的声明Nagios的?
  • 其他方法?

你会如何延长dockerfile以上的nagios用自己的配置文件?

Answer 1:

既然你是直接添加自己的my_custom_config.cfg文件到构建时容器只是改变你的主机上的my_custom_config.cfg文件的权限,然后使用泊坞窗构建建立你的形象。 主机权限被复制到容器的图像。



文章来源: Changing permissions of added file to a Docker volume