Как запустить команду из одного контейнера Docker в другом? - PullRequest
0 голосов
/ 21 мая 2018

У меня есть приложение и контейнер базы данных.Я привожу их с помощью Docker Compose.Контейнеру приложения нужно подождать, пока не будет запущен контейнер db, а затем выполнить SQL инициализации схемы.Мне нужно сделать это после того, как мой wait-for-db скрипт будет выполнен, таким образом, он должен быть выполнен в CMD контейнера приложения.Проблема в том, что контейнер db не содержит ssh.Как запустить определенную команду, например

sqlplus system/oracle @schema.sql

, из контейнера приложения для контейнера db?

Большое спасибо!

ОБНОВЛЕНИЕ: может быть, есть способ выполнить SQL через HTTP в Oracle 12c?

1 Ответ

0 голосов
/ 21 мая 2018

Контейнеру БД не нужен ssh.Ваш сценарий ожидания в контейнере приложения может проверить доступность порта прослушивателя оракула 1521 в контейнере db, прежде чем продолжить.

Например, в записи docker-compose для контейнера приложения, предполагая, что "db"- это имя контейнера базы данных:

command: "./wait-for-it.sh db:1521 runsql.sh"

, где runql.sh - это скрипт, который получает необходимые переменные среды Oracle и запускает sqlplus.

...