首页 > 解决方案 > 填充和版本控制 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卷中。我考虑过使用scratchdocker 映像或 alpine,但正如预期的那样,docker-compose 无法启动暂存容器。

我怎样才能实现这种配置,我什至应该使用建议不要使用的所谓的仅数据容器?也许 myapp 本身应该下载这些二进制文件并将它们放在持久存储中,在这种情况下,我必须实现自己的版本控制/更新逻辑。

这个应用程序在 balena.io 上运行,我使用 docker volume API 和 balena docs 作为参考:https ://www.balena.io/docs/learn/develop/multicontainer/#named-volumes

标签: dockerdocker-composebalena

解决方案


推荐阅读