gpt4 book ai didi

docker - 如何使用多层私有(private) repo 依赖项在 Docker 内部构建 npm

转载 作者:行者123 更新时间:2023-12-02 19:32:18 25 4
gpt4 key购买 nike

有谁知道如何在必须访问 GitHub 存储库的多个依赖项的 Docker 中进行 npm 安装?我遇到了以下情况,我必须从私有(private)仓库安装 npm(我有权限),但顶级项目吸纳了来自同一组织的其他仓库。如:

npm i bob/top-foo



top-foo 的 package.json 有
  "dependencies": {
"middle-foo": "bob/middle-foo",

middle-foo 的 package.json 有
  "dependencies": {
"bottom-foo": "bob/bottom-foo",

我在我的 Linux 环境中运行它没有问题,因为我已将我的 ssh 加载到我的 GitHub 帐户中。当然,问题是 Docker 镜像以 root 身份启动,我似乎无法弄清楚推送凭据如何向下流入依赖项安装。

我的 Docker 文件目前还挺简单的,因为我什至无法获得身份验证的 key 。我用 ssh-keygen 创建了一个全新的并尝试使用它:
FROM node:6

ARG git_personal_access_token
RUN echo $git_personal_access_token
ARG SSH_PRIVATE_KEY
RUN echo $SSH_PRIVATE_KEY

RUN mkdir /root/.ssh/
RUN chmod 700 /root/.ssh
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan github.com > /root/.ssh/known_hosts
RUN echo $SSH_PRIVATE_KEY > /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa

RUN eval $(ssh-agent);ssh-add;ssh -vvv -T -i /root/.ssh/id_rsa git@github.com

最佳答案

I don't have a problem running this as me from my Linux environment as I have my ssh loaded up into my GitHub account.



然后您需要将加密的 ssh key 嵌入到您的 docker 镜像中。
不是你自己的 ssh 私钥,而是新的 deploy keys 专门为此创建的,并且其公钥已注册到相关存储库(而不是注册到您的帐户)。

参见“ Automating pushing parts of a git repo to google cloud bucket”:想法是有一个脚本来解密这些私有(private)加密部署 ssh key 并将它们放入 ~/root/.ssh。容器在运行时,允许 docker 访问那些私有(private)仓库。

关于docker - 如何使用多层私有(private) repo 依赖项在 Docker 内部构建 npm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50108996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com