У меня есть простой файл для создания докеров
version: '3'
services:
cassandra:
image: "cassandra:3.11.4"
container_name: leguan_cassandra
ports:
- "9042:9042"
volumes:
- ./build/cassandra:/var/lib/cassandra
который никогда не возвращается. Не могли бы вы привести пример, как docker-compose возвращается после того, как cassandra была готова и пригодна к использованию?
заранее спасибо Маркус
Также обратите внимание, что Docker Compose не берет на себя ответственность за проверку того, что какой-либо сервис «готов и пригоден для использования». Если вы используете docker-compose up -d или у вас есть другие сервисы в том же docker-compose.yml, Compose немедленно продолжит работу; если для запуска базы данных требуется некоторое время, Compose не будет этого ждать.
В настоящее время я пытаюсь использовать docker-compose для запуска кассандры перед модульными тестами и хочу остановить ее после этого. Поэтому я использую плагин gradle «com.avast.gradle:gradle-docker-compose-plugin:0.8.14», который вызывает docker-compose без -d. Так я правильно понял? Я должен запустить его с -d и ждать, пока база данных придет сама?


Хорошо, спасибо за ваши ответы,
с этим docker-compose.yml теперь у меня работает:
version: '3'
services:
cassandra:
image: "cassandra:3.11.4"
container_name: leguan_cassandra
ports:
- "9042:9042"
volumes:
- ./build/cassandra:/var/lib/cassandra
healthcheck:
test: ["CMD-SHELL", "[ $$(nodetool statusgossip) = running ]"]
interval: 10s
timeout: 5s
retries: 50
Я пытаюсь понять, что для вас означает «возврат», но если вы имеете в виду, что можете сохранить подсказку, попробуйте добавить
-dили--detachк командеdocker-compose up, например.docker-compose -d up