从本地而​​不是git克隆build立docker镜像

我一直坚持这一段时间,并希望在这个问题上采取最佳做法。

我在Go中构build了一个应用程序,我想用Docker在AWS上发布。 我正在关注如何设置它的AWS说明 ,但是当我尝试构build命令时,出现以下错误:

Sending build context to Docker daemon 182.8 MB Step 1/1 : FROM golang:1.8.1-onbuild # Executing 3 build triggers... Step 1/1 : COPY . /go/src/app Step 1/1 : RUN go-wrapper download ---> Running in e6bc4dd7dc44 + exec go get -v -d github.com/<myaccount>/<myapp> (download) # cd .; git clone https://github.com/<myaccount>/<myapp> /go/src/github.com/<myaccount>/<myapp> Cloning into '/go/src/github.com/<myaccount>/<myapp>'... fatal: could not read Username for 'https://github.com': No such device or address 

我已经search了一下,看起来这可能是由于repo被设置为private的原因导致的,我想保留这种方式。 常见的方法似乎是在图像中embedded凭证或ssh密钥以进行部署,这听起来违背了安全(甚至常识)方面的任何build议。

有什么办法我还可以做到这一点? 为什么它甚至试图克隆任何东西,代码已经在那里?

编辑

Dockerfile只包含以下行

 FROM golang:1.8.1-onbuild 

下载是您正在使用的图像中的onbuild一部分。 你可以在这里看到他们的dockerfile 。 如果你不想包含这个步骤,切换到FROM golang:1.8.1 ,然后在Dockerfile中执行复制和安装步骤。 例如

 FROM golang:1.8.1 RUN mkdir -p /go/src/app WORKDIR /go/src/app CMD ["go-wrapper", "run"] COPY . /go/src/app RUN go-wrapper install