You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dockerfile中SSH克隆GitLab私有仓库失败问题求助

解决Docker构建时GitLab私有仓库主机密钥验证失败问题

问题根源

从错误日志和你的Dockerfile来看,存在两个关键问题:

  1. 仓库地址格式错误
    错误输出里的克隆命令出现了重复的git@前缀:git@git@gitlab.<org>/<>repo.git,GitLab的SSH仓库地址正确格式应为git@gitlab.<org>:<仓库路径>.git(注意是冒号分隔域名和仓库路径,不是斜杠)。

  2. SSH已知主机写入命令错误
    你Dockerfile里的ssh-keyscan命令写法有误,原命令把~/.ssh/known_hosts当成了扫描目标,而不是将GitLab的主机密钥追加写入该文件。正确的做法是用重定向符号>>把扫描结果输出到known_hosts中。

修正后的Dockerfile

FROM python:3.8-bullseye

# 安装依赖并清理缓存
RUN apt-get update && \
    apt-get install --yes --no-install-recommends \
    openssh-client \
    git \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# 创建SSH目录并写入GitLab主机密钥
RUN mkdir -p -m 0600 ~/.ssh && \
    ssh-keyscan -H gitlab.com >> ~/.ssh/known_hosts

# 挂载SSH密钥并克隆私有仓库
RUN --mount=type=ssh \
    git clone git@gitlab.<org>:<你的仓库路径>.git

额外检查项

  • 先在本地执行ssh-add ~/.ssh/id_ed25519,确保SSH密钥已加入ssh-agent
  • 手动在本地克隆一次仓库地址,确认地址正确且有权限访问
  • 构建命令保持docker buildx build --ssh default .即可

内容的提问来源于stack exchange,提问作者ibnelhithem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:15:42