您好,我尝试将我的 docker 镜像部署到 openshift online v3 但失败并显示消息
sed: couldn't open temporary file /etc/php/7.0/apache2/sedJpqwn4: permission denied
我的 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
将首先在该目录中创建一个临时文件。
我的猜测是整个目录以及文件对于运行容器的用户是不可写的,这实际上是一个随机用户 ID。
如果您要构建自己的镜像,则需要确保您的应用程序或启动代码需要修改的任何目录/文件都是 root
组并且可按组写入。
顺便说一句,如果这是您自己的图像,为什么不使用 PHP 的 Source-to-Image 构建器呢?
关于php - openshift v3 sed 无法打开临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44823425/