【发布时间】: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 并且没有用户集,这可能意味着它在不同的用户下运行,是吗?
为什么已经在镜像中添加了证书就不行了?
【问题讨论】:
标签: node.js docker gitlab gitlab-ci yarnpkg