从私有 git 存储库构建 Docker 映像

hem*_*eme 6 bitbucket docker dockerfile

我无法从私有 bitbucket 存储库构建 docker 映像。如 docker 文档中所述,我的 bitbucket 存储库在其根目录上有一个“Dockerfile”。

码头工人--版本

Docker version 1.3.1, build 4e9bbfa
Run Code Online (Sandbox Code Playgroud)

我试过了...

docker build --rm=true --tag="myorg/myimagename" git://bitbucket.org:myacct/myrepo.git
Run Code Online (Sandbox Code Playgroud)

错误:致命:无法连接到 bitbucket.org:bitbucket.org:ai_socktype 不支持 Servname

docker build --rm=true --tag="myorg/myimagename" git://git@bitbucket.org:myacct/myrepo.git
Run Code Online (Sandbox Code Playgroud)

错误:致命:无法连接到 bitbucket.org:bitbucket.org:ai_socktype 不支持 Servname

我正在关注的文档...

  • 我假设将使用我主机的密钥。

当 Git 存储库设置为 URL 时,存储库将用作上下文。Git 存储库与其子模块 (git clone -recursive) 一起克隆。新的 git clone 出现在本地主机上的临时目录中,然后将其作为上下文发送到 Docker 守护程序。这样,您的本地用户凭据和 VPN 等可用于访问私有存储库。

https://docs.docker.com/reference/commandline/cli/#build

  • 我还假设 docker 将从存储库中获取 Dockerfile 和上下文。

这将克隆 GitHub 存储库并将克隆的存储库用作上下文。存储库根目录下的 Dockerfile 用作 Dockerfile。请注意,您可以使用 git:// 架构指定任意 Git 存储库。

https://docs.docker.com/reference/commandline/cli/#examples_1

我已经...

  • 在 bitbucket 和我的主机之间正确设置我的 ssh 密钥
  • 在主机上通过 ssh 成功克隆私有 bitbucket repo

Pej*_*van 0

将 git:// 替换为 ssh:// 将解决该问题。