Golangに最近手を出し始めた初心者なので、そもそもの前提がおかしかったりしたらすみません。
GolangをDocker(docker-compose)を使って動かしています。
Package managerとしてdepを利用しています。
Golangで自作packageをimportする際、相対パスによるimportではなく、
プロジェクトを$GOPATH/src/github.com/{author}/{project name}
の下に配置して、
import "github.com/{author}/{project name}/{package name}"
のようにimportするのが良いとうかがったのですが、
この状態でdep ensure
を実行すると
Could not introduce github.com/{author}/{project name}@master, as its subpackage {author}/{project name}/{package name} is missing. (Package is required by (root).)
のようなエラーが発生し、importすることが出来ません。
dep ensure
でgithub.com
〜の下に配置したpackageをimportしようとしていることが原因かと思うのですが、解消する方法が見つからず悩んでおります。
この問題の解消方法を教えていただけないでしょうか。
現時点でのコードは下記のとおりです。
Dockerfile
FROM golang:1.9.2-alpine ENV GOBIN /go/bin ADD . /go/src/github.com/{author}/{project name}/ WORKDIR /go/src/github.com/{author}/{project name} RUN apk add --no-cache git \ && go get -u github.com/golang/dep/cmd/dep \ && go get -u github.com/codegangsta/gin \ && dep ensure -v CMD gin -p 9999
docker-compose.yml
version: '3' services: app: container_name: app build: context: ./ dockerfile: Dockerfile volumes: - ".:/go/src/github.com/k-tada/todo-api-server" - '/go/src/github.com/k-tada/todo-api-server/vendor' environment: PORT: 9999 ports: - '9999:9999'
Gopkg.toml
[[constraint]] name = "github.com/gin-gonic/gin" version = "1.2.0"
main.go
package main import ( "github.com/gin-gonic/gin" "os" "github.com/{author}/{project name}/routes" ) func main() { r := gin.Default() r.GET("/", routes.List) port := os.Getenv("PORT") if len(port) == 0 { port = "9999" } r.Run(":" + port) }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/15 01:59
2018/01/15 02:28
2018/01/18 11:22
2018/01/18 13:49
2018/01/19 04:16