【发布时间】:2021-08-16 22:13:33
【问题描述】:
我的公司部署了一个 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
建造者没有考虑到这一点。
任何想法都可能有所帮助
向大家致以最诚挚的问候,
【问题讨论】: