Golang中的Web应用程序供离线/浏览器使用

时间:2019-10-02 00:00:12

标签: go

我想创建一个简单的Web应用程序来管理一些数据。该应用程序将使用PostgreSQL,但我不知道如何打包所有内容以使其在Windows,Linux和Mac上运行。我可以交叉编译一个包含所有内容(Web服务器等)的go二进制文件,但是将忽略postgresql数据库,因为该数据库在本地作为单独的服务器运行。我听说过docker,但不知道这是正确的解决方案。

我是否应该创建一个Docker容器并在其中包含PostgreSQL,以便可以在任何平台上启动该Web应用程序?

2 个答案:

答案 0 :(得分:1)

您不需要Docker来执行此操作。

这使事情变得复杂,因为您的用户必须先安装Docker引擎。 Go非常适合跨平台应用,包括电池。

确定是要让您的应用在浏览器标签中运行还是应该有自己的窗口?

对于浏览器选项卡,针对目标体系结构编译您的应用,并考虑一种对您的用户有意义的URL方案,例如

  • localhost:8080/app =>用户界面。这是网络应用程序,它提供HTML,JS和CSS。告诉用户运行可执行文件(或将其安装为服务,请参见this或使用平台特定的工具,例如this one)。然后在浏览器中打开链接
  • localhost:8080/api =>后端路由。将数据提供给用户界面发出的请求。与本地运行的Postgres服务器通话

如果您希望您的应用在其自己的窗口中运行,请查看Electron。参见gotron使用Api获得电子

答案 1 :(得分:0)

如果要为此使用Docker,则必须创建一个特定于平台的Docker映像,其中包含特定于平台的二进制文件。拥有这些图像后,您可以使用docker-compose来运行您的应用,并在自己的容器中运行postgres实例。