通过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令牌密钥将不会出现在最终的图像中。