我正在尝试使用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
答案 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功能尚未完全支持