Go语言Docker私有GitHub仓库

3

我正在尝试创建一个Docker镜像,它从私有和公共GitHub存储库中提取。我使用的Dockerfile是:

FROM golang:1.4.2-onbuild

ENV GOPATH /go
ENV PATH /go/bin:$PATH

EXPOSE 3000

RUN mkdir -p /go/src/github.com/eddi/api
RUN git clone https://<access token>@github.com/owner/repo.git /go/src/github.com/owner/repo

WORKDIR /go/src/github.com/eddi/api

RUN go get github.com/gin-gonic/gin
RUN go run server.go

但是当我运行docker build .时,我会收到以下错误:

cd .; git clone https://github.com/gin-gonic/gin /go/src/github.com/gin-gonic/gin

正在克隆至 '/go/src/github.com/gin-gonic/gin'...

致命错误:无法访问 'https://github.com/gin-gonic/gin/':无法解析主机名:github.com

对于私有和公共存储库都是如此。我该如何使我的dockerfile在导入库时表现良好?

在我看来,这更像是一个网络问题(您无法访问github.com),出现在您尝试构建该镜像的Docker主机上。 - Henrik Sachse
我按照https://dev59.com/SGQn5IYBdhLWcg3wNk_t中的建议检查了网络连接,并成功连接到了Google。但是,当我尝试构建我的镜像时,仍然遇到相同的错误。 - Yaro
你尝试过使用不同的 DNS 服务器为你的 Docker 守护进程设置 'docker --dns 8.8.8.8' 吗? - Henrik Sachse
是的,它给了我与没有--dns运行相同的结果。 - Yaro
你尝试过使用具有读取权限的GitHub机器密钥,并使用git@github语法进行克隆吗? - nkhumphreys
2个回答

0
对于正在谷歌这个问题的人们。
很可能是boot2docker因某种原因丢失了网络。只需使用docker-machine restart default重新启动即可。

0

首先在本地机器上使用dig github.comnslookup github.com检查DNS。

你的Docker设置是什么?Kitematic还是Boot2docker?如果它是从辅助VM启动的,则尝试在那里运行命令,因为它正在尝试构建并在查找中失败。通常,查找失败只意味着没有到互联网的路由,因为主机解析是连接到其IP的第一步。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接