如何从 docker 容器配置 go sdk 和 GOPATH?

How can I configure go sdk and GOPATH from docker container?

我正在尝试使用 Jetbrains Gogland 和 docker compose 配置 golang 项目。我想使用 GOPATH 并从 docker 容器开始。我的意思是使用容器中的 go 安装来进行自动完成等,而无需在本地计算机上安装 golang。 项目结构是:

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

之后,我想将我的 back 文件夹部署到 docker 容器中的 /go/src/app。问题是当我开发项目时我不能使用自动完成,因为这个项目不在我本地的 GOPATH 中并且 docker 容器和我的本地机器上有不同的 golang 版本 我已经阅读了 个问题,但我仍然无法解决我的问题。

目前这是不可能的。我也不知道将来怎么可能。在 docker 中安装卷意味着您 "hide" 从容器中获取该文件夹的内容,并使用主机上的文件。因此,任何时候你从你的机器上挂载目录,你的容器文件都将无法用于机器。这意味着您不能在容器中安装 Go,然后挂载文件夹并将该位置用于 Go 源。如果你在想:我只是把东西挂在另一个地方,做一些符号链接魔术/复制文件,那只是一个无处可去的坏主意。

从几周前发布的 EAP 10 开始,Gogland 支持远程调试。这允许您在容器或远程主机上调试应用程序 运行。因此,您可以在您的机器上安装 Go 和源代码,但将它们 运行 放在容器中。