如何从 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 和源代码,但将它们 运行 放在容器中。
我正在尝试使用 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 和源代码,但将它们 运行 放在容器中。