我正在尝试在 Jenkins 管道中自动化 docker 构建。在我的 dockerfile 中,我基本上构建了一个节点应用程序。在我的 npm 安装中,我有一些需要操作系统绑定的私有 git 存储库,因此必须安装在容器中。当我手动运行此命令时,我将 ssh 密钥 (id_rsa) 传输到用于执行 npm 安装的 dockerfile。现在,我的问题是在 jenkins 管道中运行此任务时,我将配置 ssh-agent(Jenkins 插件)。无法从 ssh-agent 中提取私钥。我应该如何将我的 ssh-agent 传递到我的 dockerfile。
编辑1:
我通过这个部分地工作了:
Docker Build Command:
DOCKER_BUILDKIT=1 docker build --no-cache -t $DOCKER_REGISTRY_URL/$IMAGE_NAME:v$BUILD_NUMBER --ssh default . &&
Run Code Online (Sandbox Code Playgroud)
然后在 Docker 文件中:
这工作正常:
RUN --mount=type=ssh GIT_SSH_COMMAND="ssh -vvvT -o StrictHostKeyChecking=no"
git clone git@github.com:****
Run Code Online (Sandbox Code Playgroud)
奇怪的是这不起作用:
RUN --mount=type=ssh GIT_SSH_COMMAND="ssh -vvvT -o StrictHostKeyChecking=no" npm install git+ssh//git@github.com:****
Run Code Online (Sandbox Code Playgroud)
我觉得这与StrictHostKeyChecking=no