2017-04-25 8 views
0

私はしばらくこのことに固執しており、この問題のベストプラクティスアプローチを希望します。gitクローンの代わりにローカルからドッカー画像を作成

私はGoで、Dockerを使用してAWSで公開したいアプリを作成しました。

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 

私は少しググてきた、そしてこれは事実によって引き起こされる可能性が表示されます:私は、しかし、私はビルドコマンドをしようとすると、私は次のエラーを取得する、それを設定する方法についてAWS instructionsを以下ましたレポがプライベートに設定されていることを確認してください。一般的なアプローチは、デプロイメントのためにイメージ内に資格証明またはsshキーを埋め込むように見えます。これは、セキュリティ(または常識)の観点から推奨されていないようです。

これを行う方法はありますか?なぜ、それは最初に何かを複製しようとしているのですが、コードはすでにそこにありますか?

EDITは

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 
関連する問題