2017-04-25 50 views
0

我一直在這個問題上停留了一段時間,並且希望對此問題採取最佳實踐方法。從本地建立碼頭圖像而不是git克隆

我在Go中構建了一個應用程序,我想用Docker在AWS上發佈。我下面就如何設置它,但是當我嘗試構建命令,我收到以下錯誤AWS instructions

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 

我GOOGLE了一下,看來這可能是造成事實回購被設置爲私人,我想保持這種方式。一種常見的方法似乎是在圖像中嵌入證書或ssh密鑰以進行部署,這聽起來違背了安全性(甚至常識)方面的任何建議。

有沒有什麼辦法可以做到這一點?爲什麼它甚至試圖克隆任何東西,代碼已經在那裏?

編輯

的Dockerfile只包含以下行

FROM golang:1.8.1-onbuild 
+0

如果將源複製到GOPATH中,則不需要克隆回購。你如何準確地建立這個? – JimB

+0

請包含您的Dockerfile。 – Flimzy

+0

當你已經有文件時,你爲什麼要運行'go-wrapper download'? – BMitch

回答

1

下載是你正在使用的圖像中的onbuild的一部分。你可以看到their dockerfile here。如果您不想包含該步驟,請切換至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