Oracle
 sql >> Base de données >  >> RDS >> Oracle

Un moyen de vérifier Oracle a terminé sql

Il y a beaucoup à expliquer ici, mais je vais lier l'une de mes réponses précédentes pour un problème similaire - les étapes sont en fait les mêmes car seuls le service de base de données et l'arrière-plan diffèrent.

1) La première chose est que vous devez fournir un script bash qui attendra qu'un service réponde via http. Dans les bases de données, cela se produit généralement lorsque la base de données est prête à fonctionner et que toutes les initialisations sont terminées.

le script wait-for-it.sh écrit par vishnubob dans son attente-pour-ça dépôt @ github.

2) Deuxièmement, vous devez obtenir ce script dans chaque conteneur qui nécessite votre base de données.

3) Troisièmement, vous spécifiez un entrypoint dans votre fichier de composition, qui exécutera le script d'attente avant la command réelle l'exécution de votre service se déclenchera.

exemple de point d'entrée (en référence à la réponse vers laquelle je renvoie)

docker-entrypoint.sh :

#!/bin/bash
set -e
sh -c './wait-for-it.sh oracle:3306 -t 30'
exec "[email protected]"

Toutes ces étapes sont expliquées en détail ici dans le scénario 2, soyez conscient d'une référence à mon autre réponse dans la réponse que je pointe ici. Ce problème est un problème très courant pour les débutants et demande beaucoup d'explications, je ne peux donc pas tout publier ici.

remarque ici concernant depends_on ce que vous pourriez penser est une solution native pour ce problème de docker - comme l'indique la documentation, il attend seulement que le conteneur soit en cours d'exécution, pas réellement terminé, ce sont des travaux internes - docker n'est pas conscient de tout ce qu'il reste à faire.