Иди и получи golang-migrate внутри ошибки докера
Я пытаюсь настроить небольшое первое приложение в Go, используя Docker. Я хочу использовать инструменты cli для перехода на новый язык. Однако я получаю следующую ошибку:
пакет 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)
Команда отлично работает за пределами докера. Я запутался в настройке моего 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 ответ
Мне удалось заставить это работать в контейнере 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
Кроме того, предлагается использовать cmd/migrate
вместо cli
за этот коммит