在Dockerfile中存储用于Jenkins的API Token
我需要从Jenkins中检索一个工件来设置一个Docker-Image。
我的Jenkins需要一个可以通过wget通过的身份validation
wget --auth-no-challenge --http-user=user --http-password=apiToken --secure-protocol=TLSv1 http://jenkins.yourcompany.com/job/your_job/build?token=TOKEN
如这里所见
现在我需要将API标记传递给我的Dockerfile。
至于Dockerfile是公共可访问的,我不想将api-token明文存储在文件中。 另一种select是Docker ARG,但他们不推荐将其用于密码或安全相关数据,因为它可以用“docker history”
复制和删除包含密码的文件似乎对我来说并不那么优雅。
有没有其他解决scheme?
在做docker build
之前下载这个artefact,然后在你的Dockerfile
COPY artefact /somewhere
使用COPY artefact /somewhere
。
既然你担心这个大小的影响,你可以使用--squash
在构build过程中压缩图层。
https://docs.docker.com/engine/reference/commandline/image_build/
如果你想玩多阶段构build(实验),你也可以使用:
FROM base_image AS prepare COPY artefact /something RUN chown user /something FROM base_image COPY --from=prepare /something /something
https://docs.docker.com/engine/userguide/eng-image/multistage-build/