Я переношу приложение Go 1.10 на Go 1.11. Это также включает переход с dep
на _ 2_ для управления зависимостями.
Поскольку приложение зависит от базы данных, я использую docker-compose
для настройки локальной среды разработки. В Go 1.10 я просто смонтировал локальный репозиторий (включая папку vendor
) в правильное место в GOPATH
контейнера:
web:
image: golang:1.10
working_dir: /go/src/github.com/me/my-project
volumes:
- .:/go/src/github.com/me/my-project
environment:
- GOPATH=/go
- PORT=9999
command: go run cmd/my-project/main.go
Поскольку в Go 1.11 нет GOPATH
(при использовании модулей), я подумал, что могу просто сделать следующее:
web:
image: golang:1.11rc2
working_dir: /app
volumes:
- .:/app
environment:
- PORT=9999
command: go run cmd/my-project/main.go
Это работает, но каждый раз, когда я docker-compose up
(или любая другая команда, вызывающая инструмент Go), он разрешает и повторно загружает дерево зависимостей с нуля. Этого не происходит (скорее, только один раз), когда я запускаю команду вне контейнера (то есть в моей локальной ОС).
Как я могу улучшить настройку, чтобы в контейнере Docker сохранялись модули, загружаемые инструментом go
?