Il y a quelques outils externes qui vous permettent d'imiter ce comportement. Par exemple, avec la dockerize outil, vous pouvez envelopper votre CMD
ou ENTRYPOINT
avec dockerize -wait
et qui empêche l'exécution de votre application jusqu'à ce que les services spécifiés sont prêts.
Si votre menu fixe-composition de fichier utilisé pour ressembler à ceci:
version: '2.1'
services:
kafka:
image: spotify/kafka
healthcheck:
test: nc -z localhost 9092
webapp:
image: foo/bar # your image
healthcheck:
test: curl -f http://localhost:8080
tests:
image: bar/foo # your image
command: YOUR_TEST_COMMAND
depends_on:
kafka:
condition: service_healthy
webapp:
condition: service_healthy
ensuite, vous pouvez utiliser dockerize
votre v3
composer fichier comme ceci:
version: '3.0'
services:
kafka:
image: spotify/kafka
webapp:
image: foo/bar # your image
tests:
image: bar/foo # your image
command: dockerize -wait tcp://kafka:9092 -wait web://webapp:8080 YOUR_TEST_COMMAND