共享资源
我的第一个示例 snap build 是我开发的 java 服务器。我设法创建了一个包含 jre、我的服务器和服务启动的 snap。一切正常。
snap 文件大小为 106MB,主要为 Java。我想知道是否有办法在服务器之间共享 Java 安装?这样我的 snap 文件就会变得很小,只包含安装的特定代码?
在我的脑海里这看起来应该是这样的:
Snap 1:包含 Java 运行时并向其他人公开 Java 的 snap。我相信插槽就是为此而使用的,但我对此并不 100% 确定。Snap 2:服务器 A 仅包含我的 jar 并使用 Snap 1 的 Java 运行时。Snap 3:与 Snap 2 类似,但 jar 不同。我会让 Snap 2 和 3 依赖于 Snap 1,这样如果有人安装了 Snap 2,它就会自动安装 Snap 1。如果安装了 Snap 1,它会跳过这一步并直接使用它吗?
我不确定这是否受支持或者是否意味着以这种方式工作?
答案1
是的,很快就会有机制让您将某个快照中的文件与您制作的其他快照共享。请在接下来的几周内关注“内容界面”。
快照还会有增量更新,这将减少给定快照的上传/下载,但这是另一回事。
答案2
来自@didrocks 的回答:
截至目前,此机制尚不可用(我们可能会在未来引入一种机制,使用 3 个独立的 snap,正如您所推断的那样,但现在不可用)。如果 snap 2 和 snap 3 紧密耦合,您可以寻求另一种选择,您可以拥有一个包含 jvm 和 2 个服务的 snap。然后,进行一些配置来选择要启动的内容(服务 1、服务 2 或它们两个)。
更新:
我刚刚看到:snap 软件包是否会得到差异(增量)更新?我认为这基本上解决了问题。我担心的是每次发布新版本的软件时都必须重新打包 JRE。使用增量更新(我仍需弄清楚如何操作)后,这个问题就消失了。我很高兴 1 个软件包在重用 JRE 的同时拥有自己的 JRE。
再次编辑:截至目前(2016 年 6 月 20 日),增量更新尚未发布,但已进行试验,可能很快就会发布。来源:freenode 上的 #snappy