我的campany 部署了一个Openshift okd4 集群(4.7)来运行我们的api 和web 应用程序。对于我们的构建配置,我们使用源到镜像 (s2i) 构建策略来生成我们的自定义镜像,并结合 gitlab 来获取我们的源代码。构建自定义映像后,我们将其部署。在基于 php 的项目的构建阶段,我们使用 assemble 脚本来安装和生成我们的供应商以及 composer install 和一些其他安装。
我确实面临使用这种策略的项目的问题。执行 assemble 脚本时,openshift builder 切换到用户 1001,这导致在我们的构建期间权限被拒绝,因此下面的失败是来自构建的日志:
STEP 4: USER root
STEP 5: COPY upload/scripts /tmp/scripts
STEP 6: COPY upload/src /tmp/src
STEP 7: RUN chown -R 1001:0 /tmp/scripts /tmp/src
STEP 8: USER 1001
STEP 9: RUN /tmp/scripts/assemble
chown: cannot read directory '/var/lib/mysql': Permission denied
有什么方法可以强制 s2i builder 在步骤 8 中保持 root 身份?在构建配置中指定的任何选项来做这样的事情?或者有什么方法可以使用 dockerfile 策略进行类似的构建?
我试图在构建配置中指定这个标签:
labels:
app: build-app
io.openshift.s2i.assemble-user: root
建设者没有考虑到这一点。
任何想法可能会有所帮助
向所有人致以最诚挚的问候,