Как я могу настроить Go SDK и GOPATH из контейнера Docker?

Я пытаюсь настроить проект golang с Jetbrains Gogland и docker compose. Я хочу использовать GOPATH и выйти из контейнера Docker. Я имею в виду использование установки go из контейнера для автозаполнения и т. Д. Без установки golang на локальном компьютере. Структура проекта:

project root
    docker-compose.yml
    back|
         Dockerfile
         main.go
         some other packages
    front|
         all the front files...

После этого я хочу развернуть свой back папка в /go/src/app в док-контейнере. Проблема в том, что при разработке проекта я не могу использовать автозаполнение, так как этот проект отсутствует в моей локальной GOPATH, и в контейнере docker есть разные версии golang, и на моей локальной машине я уже прочитал этот вопрос, но все еще могу не могу решить мою проблему.

1 ответ

Решение

На данный момент это невозможно. Я также не вижу, как это могло бы быть возможно в будущем. Монтирование тома в Docker означает, что вы "скрываете" содержимое этой папки от контейнера и вместо этого используете файлы на хосте. Таким образом, каждый раз, когда вы будете монтировать каталог со своего компьютера, файлы вашего контейнера из этого экземпляра будут недоступны для этого компьютера. Это означает, что вы не можете установить Go в контейнере, а затем смонтировать папку и использовать это местоположение для источников Go. Если вы думаете: я просто примонтирую вещи в другом месте, сделаю несколько магических / копирующих файлов с символическими ссылками, это просто плохая идея, которая ни к чему не приведет.

Gogland поддерживает удаленную отладку начиная с EAP 10, выпущенного несколько недель назад. Это позволяет отлаживать приложения, работающие в контейнерах или на удаленных хостах. Таким образом, вы можете установить Go и исходный код на вашем компьютере, но он будет работать в контейнерах.

Другие вопросы по тегам