Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Uma maneira de verificar o sql finalizado do Oracle


Há muito o que explicar aqui, mas vou vincular uma das minhas respostas anteriores para um problema semelhante - as etapas são realmente as mesmas porque apenas o serviço de banco de dados e o plano de fundo diferem.

1) A primeira coisa é que você precisa fornecer um script bash que aguardará até que um serviço responda via http. Em bancos de dados, geralmente acontece quando o banco de dados está pronto e todas as inicializações são feitas.

o script wait-for-it.sh escrito por vishnubob em sua espere por isso repo @ github.

2) Segunda coisa, você precisa obter esse script dentro de cada contêiner que requer seu banco de dados.

3) Terceiro, você especifica um entrypoint em seu arquivo de composição, que executará o script em espera antes do command real executar seu serviço será acionado.

exemplo de um ponto de entrada (como referência à resposta que vinculo)

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

Todas essas etapas são explicadas em detalhes aqui no cenário 2, esteja ciente de uma referência à minha outra resposta dentro da resposta que estou apontando aqui. Esse problema é muito comum para iniciantes e exige bastante explicação, então não posso postar tudo aqui.

observação aqui sobre depends_on que você pode pensar que é uma solução nativa para esse problema do docker - como os documentos afirmam, ele apenas espera até que o contêiner esteja em execução, não terminando seus trabalhos internos - o docker não está ciente de quanto deve ser feito.