从持久性存储挂载到Azure多容器应用程序

时间:2020-09-24 12:54:06

标签: azure docker docker-compose rabbitmq azure-web-app-for-containers

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

Docker撰写文件:

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    

3 个答案:

答案 0 :(得分:0)

您需要使用 WEBAPP_STORAGE_HOME env变量,该变量映射到/ home的持久性存储。

${WEBAPP_STORAGE_HOME}/fileshare/def.json:/opt/rabbitmq-conf/def.json

答案 1 :(得分:0)

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

按照步骤here将文件共享安装到容器。而且它仅支持挂载文件共享,而不是直接挂载文件。

答案 2 :(得分:0)

该问题的解决方案似乎是使用ftp访问webapp并保存定义文件。 Docker-Compose处于预览模式(自2018年以来),实际上不支持许多选项。我尝试将存储安装到单个容器应用程序,并使用ssh连接到该应用程序,该文件正是人们期望的位置。对于多容器应用程序,此操作无效。 我觉得docker-compose功能尚未完全支持