0

我正在尝试使用 azure 构建一个多容器应用程序。我正在努力访问持久存储。在我的 docker-compose 文件中,我想为我的 rabbitmq 容器添加配置文件。我已将文件共享安装到包含 def.json 的目录“/home/fileshare”。在云上它似乎没有创建卷,因为在启动 rabbitmq 时找不到该文件。如果我在本地执行此操作并将文件保存在它可以工作的地方。

码头工人撰写文件:

version: '3.8'
services:

   rabbitmq:
      image: rabbitmq:3-management-alpine
      volumes:
       - /home/fileshare/def.json:/opt/rabbitmq-conf/def.json
      expose:
        - 5672
        - 15672
      environment:
        RABBITMQ_DEFAULT_USER: guest
        RABBITMQ_DEFAULT_PASS: guest
        RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: -rabbitmq_management load_definitions "/opt/rabbitmq-conf/def.json"
      networks:
        - cloudnet 
        
networks:
   cloudnet:
      driver: bridge    
4

3 回答 3

1

您需要使用映射到 /home 的持久存储的WEBAPP_STORAGE_HOME 环境变量。

${WEBAPP_STORAGE_HOME}/fileshare/def.json:/opt/rabbitmq-conf/def.json
于 2020-09-24T13:18:13.390 回答
0

据我了解,您希望将 Azure 文件共享挂载到容器 rabbitmq 并将 def.json 文件上传到文件共享,以便您可以访问容器内的 def.json 文件。

按照此处的步骤将文件共享挂载到容器。它只支持挂载文件共享,而不是直接挂载文件。

于 2020-09-25T06:51:59.327 回答
0

这个问题的解决方法似乎是使用 ftp 访问 webapp 并保存定义文件。Docker-Compose 处于预览模式(自 2018 年起),实际上不支持很多选项。我尝试将存储安装到单个容器应用程序并使用 ssh 连接到它,该文件正是人们期望的位置。对于多容器应用程序,这是行不通的。我觉得 docker-compose 功能还没有完全支持

于 2020-10-02T05:20:05.813 回答