我正在尝试使用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```
答案 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