我在我的一些 golang Web 服务项目中使用 docker 容器,部分开发工作流程是使用 goconvey 来获得一些快速 tdd 反馈。我想在 Docker 容器中启动它,并将端口暴露给主机,这样我就可以将我的 Web 浏览器指向它并进行编码。
我们已经编译了 goconvey 二进制文件并将其弹出到/usr/local/bin 中 问题是,每当我连接到从 docker 容器公开的端口时,我只会收到“404 页面未找到”错误。
我们在没有 GOPATH 的情况下进行了一些调整,特别是我正在供应我的库,例如 GOPATH=/proj-dir/vendor ,并且代码开发发生在/src
我可以让 goconcey 在我的主机上很好地工作,但在 docker 中我很难过。 404 表明我正在访问 goconvey 服务器,但它没有提供任何服务?
感谢任何帮助。
最佳答案
goconvey 服务器找不到包含静态资源的目录时返回 404。
该目录的位置取决于 go get 存储 goconvey 文件的位置,通常在
$GOPATH/src/github.com/smartystreets/goconvey
因此,在您的 docker 容器中,确保使用当前的 $GOPATH
值安装 goconcey,并验证 /goconcey
目录包含 /web/client/...
子目录,这是 Web UI 的 html、css 和 js 文件所在的位置。
(为了测试这一点,我重命名了客户端目录,这导致 goconvey 返回普通的 404 消息。)
关于go - 从 docker 容器内运行 goconvey http 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31285448/