在我花费数小时尝试之前,我想问问社区这是否可能?
设想:
- 在主机上运行 Goland(可能是任何操作系统)
- 在基于 Alpine 的容器中运行 Go dev env
- 映射到容器的主机卷上的代码
我可以将 Goland 调试器 (Delve) 附加到容器中的 Go 进程吗?我假设我可以在无头容器中运行 delve 并在主机上运行客户端,打孔所需的任何端口?如果主机不是 linux,我会有二进制兼容性问题吗?
我不想在这个答案中复制整个帖子,而是看看这个资源,了解如何使用容器来运行你编写的应用程序https://blog.jetbrains.com/go/2018/04/30/debugging-容器化的应用程序/
为了具体回答这个问题,只要您在主机上安装了 Go、应用程序源和所有依赖项,您就可以在 GoLand 中进行开发,然后使用映射卷,您也可以从容器中运行它。
然而,这个工作流听起来更像是你通常使用虚拟机而不是容器的工作流,这就是为什么在上面的文章中所有的运行/调试都是使用实际的容器完成的,而不是使用容器内的 bash 来运行这些命令。