如何修复docker-compose.yml我得到一个rabbitmq.config是一个目录错误?
我的docker-compose.yml中有以下几行代码如何修复docker-compose.yml我得到一个rabbitmq.config是一个目录错误?,docker,rabbitmq,docker-compose,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,当我
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
知道我的卷声明有什么不对吗?很可能当前目录中的
/config/rabbitmq.config
实际上是一个目录,而不是docker entrypoint.sh
所期望的配置文件 您正在将文件装载为目录
简化的解决方案是将要装载的文件的父目录装载到容器中,装载到您希望它们装载到的目录中
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
的新位置,我想做的是在启动rabbitmq服务器时添加一些交换。不,不是。当我做file./config/rabbitmq.config
时,我会得到ASCII文本。这很奇怪,我无法重现您的体验。然后,我建议您将准确的目录结构复制到另一个目录,确保/config/rabbitmq.config
是您想要的配置文件,并且docker compose up
相同的docker compose.yml
进行验证。谢谢。尽管在一些代码示例中,它们明确地将文件设置为卷。无论如何,这就是问题所在。