来自 docker 映像的命令未传递到管道
Posted
技术标签:
【中文标题】来自 docker 映像的命令未传递到管道【英文标题】:Command from docker image not passed through to pipeline 【发布时间】:2021-01-03 02:15:29 【问题描述】:在基于node:12
的图像的Dockerfile
中,我有以下几行来添加自签名证书
RUN apt-get update && apt-get -yqq install ca-certificates
RUN mkdir -p /usr/local/share/ca-certificates/domain
COPY .docker/cert.crt /usr/local/share/ca-certificates/domain/
RUN update-ca-certificates --fresh
RUN yarn config set cafile /usr/local/share/ca-certificates/domain/cert.crt
当我也添加RUN yarn config list
时,我可以看到这个设置已经添加成功。之后,我构建并将我的图像推送到注册表。
但是现在,当我在 .gitlab-ci.yml
中使用它并使用 yarn install
时,我收到一条错误消息,指出链中存在自签名证书。
当我在管道中使用yarn config list
时,它不会显示cafile
,就好像没有使用图像中设置的设置一样。
当我将yarn config set cafile /usr/local/share/ca-certificates/domain/cert.crt
添加到管道的script
部分时,它可以正常工作,这意味着
-
我的图像构建正确,因为它的证书位于正确的位置,并且如果手动添加它就可以工作
不知何故,配置不会从映像持久化到管道
我检查了Dockerfile
https://github.com/nodejs/docker-node/blob/master/12/stretch/Dockerfile 并且没有用户集,这可能意味着它在不同的用户下运行,是吗?
为什么已经在镜像中添加了证书就不行了?
【问题讨论】:
【参考方案1】:来自 Dockerfile 的命令不会影响主机,只会影响映像。如果您将此图像用作您的工作图像,则无需重新设置。
【讨论】:
以上是关于来自 docker 映像的命令未传递到管道的主要内容,如果未能解决你的问题,请参考以下文章
原始 IP 未传递到 AWS Elastic Beanstalk 上的单个容器 Docker 映像上的容器
AWS Elastic Beanstalk Docker 来自 ECR 错误“Dockerrun.aws.json 中未指定 Docker 映像”
在 Visual Studio 中使用相同的 docker 文件构建 docker 映像的 Azure Pipeline 失败