在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《Golang 中的 Web 应用程序供离线/浏览器使用》,聊聊,希望可以帮助到正在努力赚钱的你。
问题内容我想创建一个简单的 Web 应用程序来管理一些数据。该应用程序将使用 PostgreSQL,但我不知道如何打包所有内容以使其在 Windows、Linux 和 Mac 上运行。我可以交叉编译一个 go 二进制文件,其中包含所有内容(Web 服务器等),但 postgresql 数据库将被排除在外,因为它在本地作为单独的服务器运行。我听说过 docker 但我不知道这是否是正确的解决方案。
我应该创建一个 Docker 容器并在其中包含 PostgreSQL,以便我可以在任何平台上启动该 Web 应用程序吗?
解决方案
您不需要 Docker 来执行此操作。
这使事情变得复杂,因为您的用户必须首先安装 Docker 引擎。 Go 非常适合跨平台应用程序,包括电池。
决定您的应用程序是在浏览器选项卡中运行还是应该拥有自己的窗口?
例如,对于浏览器选项卡,针对目标架构编译您的应用程序,并考虑对您的用户有意义的 URL 方案
localhost:8080/app
=> 用户界面。该路由是 Web 应用程序,它提供 HTML、JS 和 CSS。告诉您的用户运行可执行文件(或将其安装为服务,请参阅 this 或使用特定于平台的工具,如 this one)。然后在浏览器中打开链接localhost:8080/api
=> 后端路由。为用户界面发出的请求提供数据。用于与本地运行的 Postgres 服务器对话
如果您希望应用程序在其自己的窗口中运行,请查看 Electron。请参阅 gotron:Go Api for Electron p>
如果您想为此使用 Docker,则必须创建一个特定于平台的 docker 映像,其中包含特定于平台的二进制文件。获得这些映像后,您可以使用 docker-compose 来运行您的应用程序,并在其自己的容器中运行 postgres 实例。
理论要掌握,实操不能落!以上关于《Golang 中的 Web 应用程序供离线/浏览器使用》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注编程网公众号吧!