在基于Dockerfile
的图像的node:12
中,我有以下几行添加自签名证书
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,没有用户设置,这可能意味着它在不同的用户下运行,是吗?
为什么已经在映像中添加证书时为什么不起作用?
答案 0 :(得分:0)
来自Dockerfile的命令不影响主机,仅影响映像。如果将此图像用作工作图像,则无需再次设置。