openshift v3 sed无法打开临时文件

嗨,我试图部署我的docker图像openshift在线V3,但失败的消息

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

我的docker图像包含sed脚本

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

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

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

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

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

顺便说一句,如果这是你自己的形象,为什么不使用PHP的源图像生成器而不是?

你可以尝试切换到root:

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

id为“185”的是原始用户,在我使用的图片中,您可以用以下方式testing您的案例:

 RUN id -u 

只记得切换回非根,这是与docker相关的openshift限制之一。