通过npm install – Docker Container访问private git repos

我正在build立一个Docker容器,这个容器将从GitHub中抽取私有的回购作为这个过程的一部分。 目前我正在使用从命令行传递的Access Token (一旦构build通过Jenkins触发,将会更改)。

 docker build -t my-container --build-arg GITHUB_API_TOKEN=123456 . # Dockerfile # Env Vars ARG GITHUB_API_TOKEN ENV GITHUB_API_TOKEN=${GITHUB_API_TOKEN} RUN git clone https://${GITHUB_API_TOKEN}@github.com/org/my-repo 

这工作正常,似乎是一个安全的方式做到这一点? (尽pipe需要在构build时检查var GITHUB_API_TOKEN)

我正在寻找人们如何处理SSH密钥或访问令牌时运行npm install和依赖从github拉

 "devDependencies": { "my-repo": "git@github.com:org/my-repo.git", "electron": "^1.7.4" } 

目前,我不能拉这个回购,因为我得到的错误Please make sure you have the correct access rights因为我没有在这个容器中的SSH密钥设置

任何帮助赞赏

谢谢

docker机密是一件事情,但它只适用于docker群的一部分容器。 这是为了处理像SSH密钥的东西。 你可以按照文档的build议做,并创build一个1群来利用这个function。

docker构成也支持秘密,虽然我没有用它们来撰写。

使用多阶段构build方法。

你的Dockerfile应该是这样的:

 FROM alpine/git as base_clone ARG GITHUB_API_TOKEN WORKDIR /opt RUN git clone https://${GITHUB_API_TOKEN}@github.com/org/my-repo FROM <whatever> COPY --from base_clone /opt/my-repo /opt ... ... ... 

build立:

 docker build -t my-container --build-arg GITHUB_API_TOKEN=123456 . 

Github API令牌密钥将不会出现在最终的图像中。