去docker错误中获取golang-migrate

时间:2019-05-23 16:39:42

标签: docker go golang-migrate

我正在尝试使用Docker设置一个小型的首次应用程序。我想使用cli工具进行go-lang迁移。但是,我收到以下错误:

package github.com/golang-migrate/migrate/v4/internal/cli:在以下任意位置均找不到软件包“ github.com/golang-migrate/migrate/v4/internal/cli”:     /usr/local/go/src/github.com/golang-migrate/migrate/v4/internal/cli(来自$ GOROOT)     /go/src/github.com/golang-migrate/migrate/v4/internal/cli(来自$ GOPATH)

该命令在docker外部运行正常。我对Dockerfile的设置感到困惑,我的GOPATH看起来也不错。

我有一个包含以下几行的Dockerfile:


RUN apk --update add alpine-sdk

WORKDIR $GOPATH/src/github.com/go-projects/docker-test/

RUN echo $GOPATH

RUN go get -u -d github.com/golang-migrate/migrate/cli github.com/lib/pq```

1 个答案:

答案 0 :(得分:0)

我能够通过以下方法在Docker容器中工作:

FROM golang:1.12rc1-alpine3.9 AS build  # or replace with your desired build

RUN apk --update add alpine-sdk

COPY . $GOPATH/src/github.com/go-projects/docker-test/

WORKDIR $GOPATH/src/github.com/go-projects/docker-test/

RUN echo $GOPATH

RUN go get -u -d github.com/golang-migrate/migrate github.com/lib/pq

此外,建议每this commit使用cmd/migrate而不是cli