У меня проблема с запуском локальной сборки, а также с настройкой Dockerfile.
Структура моего проекта выглядит так:
project
- cmd
main.go
- internal
- app
app.go
Dockerfile
Итак, в main.go
я говорю
import (
"project/internal/app"
)
Затем, когда я говорю go build
, я могу отлично бегать локально.
Тем не менее, в моем Dockerfile я говорю
FROM golang
ENV GOPATH /go/src/github.com/project
COPY . /go/src/github.com/project
WORKDIR /go/src/github.com/project
RUN make linux
И я получаю вопрос:
cmd/main.go:4:2: cannot find package "Slaxtract/internal/app" in any of:
/usr/local/go/src/project/internal/app (from $GOROOT)
/go/src/github.com/project/src/project/internal/app (from $GOPATH)
Почему Docker добавляет src
к GOPATH? И как я могу настроить его так, чтобы он выглядел в нужном месте?
Если я изменю свой main.go
на относительный путь, я могу взломать исправление - но тогда я не смогу работать локально, когда получу
main.go:4:2: local import "../internal/app" in non-local package
Любая помощь будет очень признательна.