我将docker容器用于一些golang Web服务项目,并且部分开发工作流正在使用goconvey获得快速的tdd反馈。我想在docker容器中旋转它,并将端口暴露给主机,以便我可以将Web浏览器指向它并获取编码。

我们已经编译了goconvey二进制文件并将其弹出到/usr/local/bin中
问题是,每当我连接到从Docker容器暴露的端口时,我只会收到“找不到404页”错误。

我们对GOPATH进行了一些调整,特别是我在供应我的库,例如GOPATH =/proj-dir/vendor,而代码开发正在/src中进行

我可以让goconvey在主机上正常工作,但是在docker中我很困惑。
404提示我正在连接goconvey服务器,但是它没有任何作用?

任何帮助表示赞赏。

最佳答案

当goconvey服务器找不到包含静态资源的目录时,它将返回404。
该目录的位置取决于goconvey文件的存储位置,通常在

$GOPATH/src/github.com/smartystreets/goconvey

因此,在您的Docker容器中,确保使用当前的$GOPATH值安装了goconvey,并且还确认/goconvey dir包含/web/client/...子目录,该子目录是Web UI的html,css和js文件所在的目录。

(为了测试这一点,我重命名了客户端目录,这导致goconvey返回简单的404消息。)

关于go - 从Docker容器中运行goconvey http服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31285448/

10-16 21:49