使用 Docker 开发本地软件是否可行?

使用 Docker 开发本地软件是否可行?

我知道的开发本地软件的技术有:Qt,Electron,微软的WPF,Winform,Java 的 Swing,JavaFX....

这些我大概都了解过,也用过 Electron,winform 开发过一两款自己的小工具。

我个人的技术栈主要是 Java,在学完 Docker后,我就在想,能否用 Docker来开发本地工具?

例如,在Docker里安装数据库,Java等环境,然后开发自己的应用(例如 JavaWeb 项目)并上传镜像;
而用户只需下载Docker + 镜像(这个我认为可以用一些脚本来运行,例如Windows的.bat文件,降低用户安装难度),然后即可运行镜像;而不用客户早就安装数据库,Java等环境

这样的方式是否可行?有相关的案例吗?(我试着搜索了下,不知道用什么关键字好,没搜到类似的案例)

我试过 Electron,然后本地应用的话,不太能让客户去安装数据库,因此用的是 SQLite,然后操作数据库起来远远没有 Java 操作数据库方便(Java有很多成熟的 orm 框架)

也试过 winform,感觉有点难用... winform 里的很多控件是写死了的,不能自定义功能

阅读 561
3 个回答

我知道一个软件,linkding,应该符合你说那种方式。它就在容器里有一个服务器,在宿主机上用浏览器访问。

但我觉得如果是一个“小工具”的话,就没有必要用 Docker 这样“重”的工具了。或者可以试试在 GUI 中嵌入 WebView。

更建议你用docker compose组织你的容器依赖关系,将所有依赖都打包到一个镜像中不是一个好的做法,会导致镜像容量剧增,参考其他开源项目的docker compose做法就知道了

完全可以啊,你上github上搜很多知名的开源项目为了方便你部署不都是这么干的吗,可以说docker诞生的一大目的就是为了简化部署环节、保证环境的一致。
你说的本地软件我的理解是桌面应用程序吧?
如果是像Electron这样最终要打包成可执行文件的,把数据库和它本身打包成一个镜像不太现实,可以考虑就单独构建一个MySQL数据库的容器作为服务端,Electron只作为客户端和它去交互就可以了。
如果是你说的JavaWeb项目,那完全可以把所有东西都打成一个镜像,构建成一个容器启动,浏览器访问就完事了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏