docker - 填充和版本控制 docker 命名卷,用作 balena.io 的持久存储
问题描述
我有一组二进制文件,需要由 docker-compose 中指定的 2 个服务共享。我需要将数据保留在主机操作系统上,但我还需要不时使用新版本更新它。使用命名卷,我可以使用以下方法实现此目的:
volumes:
data:
services:
myapp:
image: myimage:latest
volumes:
- "data:/opt/data"
anotherapp:
image: anotherapp:latest
volumes:
- "data:/opt/data"
我想将我的二进制 blob 添加到一个单独的容器中,可以对其进行版本控制并从集线器中提取,然后将文件放置在data
卷中。我考虑过使用scratch
docker 映像或 alpine,但正如预期的那样,docker-compose 无法启动暂存容器。
我怎样才能实现这种配置,我什至应该使用建议不要使用的所谓的仅数据容器?也许 myapp 本身应该下载这些二进制文件并将它们放在持久存储中,在这种情况下,我必须实现自己的版本控制/更新逻辑。
这个应用程序在 balena.io 上运行,我使用 docker volume API 和 balena docs 作为参考:https ://www.balena.io/docs/learn/develop/multicontainer/#named-volumes
解决方案
推荐阅读
- tcl - 如何在 TCL 脚本中将字符串从说英语翻译成日语
- c# - 方法“ImageAnnotatorClient.Create”没有重载需要 1 个参数
- android - Android Java 与 Native C 未定义的对 `__android_log_print' 的引用
- javascript - TypeError:Webpack 导入的模块不是函数
- python - 熊猫同时在数据框的两列上滚动应用功能
- javascript - 需要使用 momentjs 将 MMDDYYYY 字符串转换为日期
- javascript - axios 响应和错误中的额外属性数据
- ruby-on-rails - 使用 Rails 上的文件或图像执行 Rspec 的正确方法是什么?
- html - 将页脚保持在底部(页脚不必随滚动而移动)
- flutter - 如何将我现有的应用程序、插件或主机可编辑模块项目迁移到 AndroidX?