我如何修复我的docker-compose.yml我得到一个rabbitmq.config是一个目录错误?

时间:2017-10-25 14:46:12

标签: docker rabbitmq docker-compose

我的docker-compose.yml

中有以下几行
rabbit:
   volumes:
     - ./enabled_plugins:/etc/rabbitmq/enabled_plugins
     - ./config/definitions.json:/opt/definitions.json:ro
     - ./config/rabbitmq.config:/etc/rabbitmq/rabbitmq.config:ro

但是当我启动时,对于rabbitmq.config,它说

/usr/local/bin/docker-entrypoint.sh: line 386: /etc/rabbitmq/rabbitmq.config: Is a directory

知道我的卷声明中有什么问题???

2 个答案:

答案 0 :(得分:1)

当前目录中的HOST实际上可能是一个目录,而不是./config/rabbitmq.config期望的配置文件。

答案 1 :(得分:1)

您正在将文件挂载为目录。

简化的解决方案是将要装入容器的文件的父目录挂载到您希望它们所在的目录中。

rabbit:
   volumes:
     - .:/etc/rabbitmq
     - ./config:/opt:ro
     - ./config:/etc/rabbitmq:ro

但请注意,您正在加载/opt,并且您希望避免它,因此将所有配置文件放入主机上的config并将它们显式挂载到目录中:

rabbit:
   volumes:
     - ./config:/etc/rabbitmq
     - ./config:/opt/rabbitmq:ro

请注意,您需要将rabbitmq.config更新为definition.json

的新位置