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限制之一。