openshift v3 sed无法打开临时文件

时间:2017-06-29 11:06:39

标签: php apache docker apache2 openshift

嗨我试图将我的docker镜像部署到openshift online v3但失败并显示消息

  

sed:无法打开临时文件/etc/php/7.0/apache2/sedJpqwn4:   许可被拒绝

我的泊坞窗图片包含像

这样的sed脚本
RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf

我是openshift和docker的新手如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

即使文件/etc/apache2/apache2.conf是可写的,当使用sed -i时,目录也必须是可写的,因为sed将首先在该目录中创建一个临时文件。

我的猜测是整个目录以及文件不能写入运行容器的用户,这实际上是一个随机用户ID。

如果要构建自己的映像,则需要确保应用程序或启动代码需要修改的任何目录/文件都是组root并且可以按组写入。

BTW,如果这是您自己的图像,为什么不使用PHP的Source-to-Image构建器呢?

答案 1 :(得分:1)

您可以尝试切换到root:

USER root
RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
USER 185

id&#34; 185&#34;它是我使用的图像中的原始用户,您可以使用以下方式测试您的案例:

RUN id -u

请记住切换回非root用户,这是与docker相关的openshift限制之一。