连接到我构建docker映像的服务器
ssh -A user@myserver
Dockerfile
# syntax=docker/dockerfile:experimental
FROM golang
WORKDIR /go/src/github.com/xxx/xxx
RUN --mount=type=ssh git clone git@github.com:xxx/xxx.git .
...
建筑图片:
export DOCKER_BUILDKIT=1
docker build --ssh default=$SSH_AUTH_SOCK -t xxx/xxx .
...
#8 1.579 Host key verification failed.
#8 1.579 fatal: Could not read from remote repository.
#8 1.579
#8 1.579 Please make sure you have the correct access rights
#8 1.579 and the repository exists.
------
rpc error: code = Unknown desc = executor failed running [/bin/sh -c git clone git@github.com:xxx/xxx.git .]: exit code: 128
我想念什么?
export DOCKER_BUILDKIT=1
docker build --ssh default -t xxx/xxx .
在本地构建会产生相同的结果。
答案 0 :(得分:2)
您可能现在已经知道或继续进行此操作,但就我而言,我在配置构建时跳过了这一步:
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
事实证明,ssh会厌恶地举起手来,而不检查代理是否存在.ssh目录,如果您未导入服务器的公钥,则ssh会提前失败。
答案 1 :(得分:0)
您的错误消息说,它无法验证主机(即您要构建的docker映像)。
要执行git clone via ssh
,您必须遵循these steps.
但是,如果要在映像构建过程中克隆存储库。您可以使用https instead of ssh
进行克隆。
git clone https://username:password@github.com/username/repository.git
因此,您的Dockerfile
应该看起来像这样:
FROM golang
WORKDIR /xxx
RUN git clone https://username:password@github.com/xxx/xxx.git
...