使用 docker 交付桌面应用程序是个好主意吗?
Is it good idea to deliver desktop app with docker?
我对向用户提供桌面应用程序的一些好方法很感兴趣。
该应用程序是使用 LAMP 制作的网络应用程序,但我需要和用户在桌面上 运行 它。
我想为此选择一些好的跨平台解决方案。
我已经有了这个应用程序的 docker 图片。
是否有使用 docker 向用户交付应用程序的做法?就像安装 docker(如果尚未安装)和比 运行 一个 docker 图像的安装包。
有这方面的经验吗?
Docker 不适合此用例。我的建议是选择一种广泛使用的脚本语言,如 Python 或 JavaScript 来实现,并使用嵌入式数据库,如 SQLite 作为持久层;那么您的最终用户只需安装语言解释器(他们可能已经拥有)和您的应用程序,他们就可以使用他们已经拥有的前端浏览器。
Docker 在这里提出了许多挑战;如果你浏览其他 docker 个问题,你会看到人们经常打他们中的一些:
在非 Linux、Docker 运行ning Linux 应用程序上需要一个 Linux 虚拟机,它转 "lightweight container system" 变成 "full-blown resource-hogging virtual machine".
在非 Linux 上,可访问的主机文件系统路径集是有限的。如果您的应用程序试图访问 Windows F: 驱动器上的用户数据,以选择一个最近的问题,那么您的应用程序将无法运行。
如果您的应用程序管理一定数量的 "user" 数据,管理文件系统权限是棘手的,并且在每个 OS.
上都不同
如果您的应用程序试图呈现 GUI,而您正在尝试构建 "one portable image",那么您将被迫使用 Linux X11 平台;这需要在主机上有一个匹配的 X 服务器(一个额外的软件安装!),加上几个额外的挑剔的绑定安装、环境变量和主机设置。
如果您的应用程序试图呈现 GUI,默认情况下它无法访问用户的非 Docker 桌面首选项,因此它的外观和行为可能与本机不同申请.
Docker 需要一定数量的升级权限到 运行以上)它更有可能危及整个系统。
None 这是无法克服的,但也很难看到任何特别的好处需要付出的努力和额外的复杂性。
我对向用户提供桌面应用程序的一些好方法很感兴趣。 该应用程序是使用 LAMP 制作的网络应用程序,但我需要和用户在桌面上 运行 它。 我想为此选择一些好的跨平台解决方案。
我已经有了这个应用程序的 docker 图片。
是否有使用 docker 向用户交付应用程序的做法?就像安装 docker(如果尚未安装)和比 运行 一个 docker 图像的安装包。 有这方面的经验吗?
Docker 不适合此用例。我的建议是选择一种广泛使用的脚本语言,如 Python 或 JavaScript 来实现,并使用嵌入式数据库,如 SQLite 作为持久层;那么您的最终用户只需安装语言解释器(他们可能已经拥有)和您的应用程序,他们就可以使用他们已经拥有的前端浏览器。
Docker 在这里提出了许多挑战;如果你浏览其他 docker 个问题,你会看到人们经常打他们中的一些:
在非 Linux、Docker 运行ning Linux 应用程序上需要一个 Linux 虚拟机,它转 "lightweight container system" 变成 "full-blown resource-hogging virtual machine".
在非 Linux 上,可访问的主机文件系统路径集是有限的。如果您的应用程序试图访问 Windows F: 驱动器上的用户数据,以选择一个最近的问题,那么您的应用程序将无法运行。
如果您的应用程序管理一定数量的 "user" 数据,管理文件系统权限是棘手的,并且在每个 OS.
上都不同
如果您的应用程序试图呈现 GUI,而您正在尝试构建 "one portable image",那么您将被迫使用 Linux X11 平台;这需要在主机上有一个匹配的 X 服务器(一个额外的软件安装!),加上几个额外的挑剔的绑定安装、环境变量和主机设置。
如果您的应用程序试图呈现 GUI,默认情况下它无法访问用户的非 Docker 桌面首选项,因此它的外观和行为可能与本机不同申请.
Docker 需要一定数量的升级权限到 运行以上)它更有可能危及整个系统。
None 这是无法克服的,但也很难看到任何特别的好处需要付出的努力和额外的复杂性。