goアプリをビルドすると、Dockerで奇妙なエラーが発生します。
./main.go:31:9: cannot use db (type *"github.com/khwerhahn/somerepo/vendor/github.com/jinzhu/gorm".DB) as type *"app/vendor/github.com/jinzhu/gorm".DB in argument to Migrate
The command '/bin/sh -c go-wrapper install' returned a non-zero code: 2
ローカルでアプリが正常に動作するため、誰かが私に正しい方向にヒントを与えることができますか?そのちょうどDockerコンテナの中にあります。glide
依存関係の管理に使用します。
Dockerfile:
FROM golang:1.9
WORKDIR /go/src/app
COPY . .
RUN go-wrapper download
RUN go-wrapper install
CMD ["go-wrapper", "run"]
////編集これは私の構造がどのように見えるかです。Glide
ベンダーフォルダを管理します。残りはdockerビルドが行います。
それgo get
はによって呼び出されるからgo-wrapper download
です。これにより、ベンダーフォルダーではなく、リモートから依存関係が取得されます。
ライブラリが既にベンダーであり、コードがvendor
フォルダーにある場合、実行する必要があるのはgo run
またはだけgo install
です。
そして、なぜできるのにgo-wrapperが必要なのか。
RUN glide install
RUN go install
WORKDIR "../bin"
RUN myapp
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加