Estoy instalado Docker en Windows Server 2019 con DockerProvider Estoy usando este código
Install-Module DockerProvider Install-Package Docker -ProviderName DockerProvider -RequiredVersion preview [Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine") después de eso instalo Docker-Compose con este código
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose.exedespués de eso, uso un archivo de composición docker
version: "3.5" services: rabbitmq: # restart: always image: rabbitmq:3-management container_name: rabbitmq ports: - 5672:5672 - 15672:15672 networks: - myname # network_mode: host volumes: - rabbitmq:/var/lib/rabbitmq networks: myname: name: myname-network volumes: rabbitmq: driver: local todo está bien hasta aquí, pero después de llamar a http://localhost:15672/ url en mi navegador, rabbitmq se bloquea y veo este error en los docker logs <container-id>
Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only este archivo .yml funciona correctamente en docker for windows pero después de ejecutar el archivo en el servidor de Windows, veo este error
La solución es asignar un volumen diferente donde se creará el archivo de cookies;
Así que para tu ejemplo, no;
- rabbitmq:/var/lib/rabbitmqpero;
- rabbitmq:/var/lib/rabbitmq/mnesiaTambién tiene la opción de sobrescribir el command de la imagen de la ventana acoplable para solucionar el problema del que se queja. Suponiendo que su archivo de cookies es /var/lib/rabbitmq/.erlang.cookie , reemplace el comando original de la imagen de la ventana acoplable, que probablemente sea:
["rabbitmq-server"]con:
["bash", "-c", "chmod 400 /var/lib/rabbitmq/.erlang.cookie; rabbitmq-server"]En su archivo docker-compose se verá así:
... image: rabbitmq:3-management ... ports: - "5672:5672" - "15672:15672" volumes: - ... command: ["bash", "-c", "chmod 400 /var/lib/rabbitmq/.erlang.cookie; rabbitmq-server"] Por supuesto, usted introduce aquí alguna solución alternativa/deuda técnica que asume rabbitmq-server permanecerá así en el futuro.