Hay mucho que explicar aquí, pero vincularé una de mis respuestas anteriores para un problema similar:los pasos son en realidad los mismos porque solo difieren el servicio de la base de datos y el fondo.
el script wait-for-it.sh escrito por vishnubob en su espéralo repositorio @ github.
entrypoint
en su archivo de redacción, que ejecutará el script de espera antes del command
real la ejecución de su servicio se activará.
ejemplo de un punto de entrada (como referencia a la respuesta a la que me vinculo)
ventana acoplable-punto de entrada.sh:
#!/bin/bash
set -e
sh -c './wait-for-it.sh oracle:3306 -t 30'
exec "[email protected]"
Todos estos pasos se explican en detalle aquí en el escenario 2, tenga en cuenta una referencia a mi otra respuesta dentro de la respuesta que señalo aquí. Este problema es muy común para los principiantes y requiere muchas explicaciones, por lo que no puedo publicarlo todo aquí.
nota aquí sobre depends_on
lo que podría pensar que es una solución nativa para este problema de la ventana acoplable:como dicen los documentos, solo espera hasta que el contenedor se está ejecutando, no termina sus trabajos internos, la ventana acoplable no sabe cuánto queda por hacer.