我已经为postgres创建了我自己的docker图像,因为我需要一些不在普通postgres图像上开箱即用的自定义。
我的图像的一部分是添加每次启动容器时执行的设置脚本。当我在我的本地机器上运行时,它完全按预期工作。但是当在我们的jenkins服务器上执行时,我收到此错误:
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/script/setup.sh\": permission denied".
我发现这很奇怪,特别是因为docker应该删除"它可以在我的机器上运行"
脚本几乎只是执行一些postgres命令和移动文件,我不认为这是问题所在。 但这就是我添加它的方式:
USER root
RUN mkdir /script
ADD script /script
RUN chown -R postgres:postgres /script
USER postgres
所以我有点困惑,不管这是图像/容器问题还是因为jenkins服务器缺乏运行docker镜像的权限?哪个btw会很奇怪,因为它有权建立和删除图像