go - 从 docker 容器内运行 goconvey http 服务器

标签 go goconvey

我在我的一些 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/

相关文章:

go - 为什么不在项目文件夹内执行命令?

node.js - 从 Node 连接到逻辑复制/流式传输还是去?

go - 可以在生产中使用 golang pprof 而不影响性能吗?

go - golang中有 "using"吗?

json - 如何在 Golang 中测试 panic ?

testing - 使用 goconvey 明确指定要在 golang 中运行测试的主包

google-app-engine - 谷歌应用引擎 api_server 与模块