Правильный путь для контейнера Rabbitmq Docker в Windows - PullRequest
0 голосов
/ 22 октября 2019

У меня есть контейнер RabbitMQ Docker в файле docker-compose.yml.

  rabbit:
    image: rabbitmq:3-management
    ports:
      - "15672:15672"
      - "5672:5672"
      - "61613:61613"
      - "15674:15674"
    volumes:
      - ./enabled_plugins:/etc/rabbitmq/enabled_plugins
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=default"
      - "traefik.ws.port=15674"
      - "traefik.ws.frontend.rule=PathPrefixStrip:/stomp/"
      - "traefik.web.port=15672"
      - "traefik.web.frontend.rule=PathPrefixStrip:/rabbit/"

Проблема в том, что когда я делаю docker-compose up -d, возникает ошибка.

$ docker-compose up -d
Removing deploji-server_rabbit_1
deploji-server_postgres_1 is up-to-date
Starting 820ca92c591a_deploji-server_server_1 ...
Recreating 563cd247aa16_deploji-server_rabbit_1 ...
deploji-server_traefik_1 is up-to-date
Recreating 563cd247aa16_deploji-server_rabbit_1 ... error
Starting 98268bf1b8a7_deploji-server_worker_1   ... done

ERROR: for 563cd247aa16_deploji-server_rabbit_1  Cannot start service rabbit: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/c/Projects/deploji-server/enabled_plugins\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/bfcfb23713669e206d402b6c3a183d772750b527f35e5d0372d4f6982ddeb56aStarting 820ca92c591a_deploji-server_server_1   ... done
tmq/enabled_plugins\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

ERROR: for rabbit  Cannot start service rabbit: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/c/Projects/deploji-server/enabled_plugins\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/bfcfb23713669e206d402b6c3a183d772750b527f35e5d0372d4f6982ddeb56a/merged\\\" at \\\"/mnt/sda1/var/lib/docker/overlay2/bfcfb23713669e206d402b6c3a183d772750b527f35e5d0372d4f6982ddeb56a/merged/etc/rabbitmq/enabled_plugins\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
Encountered errors while bringing up the project.

Кажется, что нет проблем в среде Linux, только в Windows. Я предполагаю, что путь к файлу enabled_plugins указан неверно. Я попытался изменить отображение на что-то вроде

  • . / Enabled_plugins: / c / rabbitmq

, и контейнер, кажется, запускается, но сервер не отвечает,поэтому я думаю, что плагины из файла enabled_plugins не были установлены должным образом.

Весь файл docker-compose.yml можно увидеть здесь: https://github.com/maxmeister/deploji-server/blob/master/docker-compose.yml

Любые советы о том, как я могу заставить его работатьхорошо на моей машине с Windows? Заранее спасибо.

1 Ответ

0 голосов
/ 22 октября 2019

Я бы предложил следовать документам : есть несколько вариантов, если использовать короткий синтаксис:

SHORT SYNTAX При желании можно указать путь на хост-машине (HOST: CONTAINER),или режим доступа (HOST: CONTAINER: ro).

Вы можете смонтировать относительный путь на хосте, который расширяется относительно каталога используемого файла конфигурации Compose. Относительные пути всегда должны начинаться с. или ...

volumes:
  # Just specify a path and let the Engine create a volume
  - /var/lib/mysql

  # Specify an absolute path mapping
  - /opt/data:/var/lib/mysql

  # Path on the host, relative to the Compose file
  - ./cache:/tmp/cache

  # User-relative path
  - ~/configs:/etc/configs/:ro

  # Named volume
  - datavolume:/var/lib/mysql

В связи вопрос и ответы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...