连接到我构建 docker 镜像的服务器
ssh -A user@myserver
Run Code Online (Sandbox Code Playgroud)
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 .
...
Run Code Online (Sandbox Code Playgroud)
建筑形象:
export DOCKER_BUILDKIT=1
docker build --ssh default=$SSH_AUTH_SOCK -t xxx/xxx .
Run Code Online (Sandbox Code Playgroud)
...
#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
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
export DOCKER_BUILDKIT=1
docker build --ssh default -t xxx/xxx .
Run Code Online (Sandbox Code Playgroud)
本地构建会产生相同的结果。
您现在可能已经明白了这一点或继续前进,但就我而言,我在配置构建时跳过了这一步:
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
事实证明,如果 .ssh 目录不存在,ssh 会厌恶地举手而不检查代理,然后如果您没有导入服务器的公钥,则会提前失败。
| 归档时间: |
|
| 查看次数: |
3635 次 |
| 最近记录: |