Прямой вопрос
Я запускаю команду в подоболочке, в BG. Как передать выходные данные как процессу FG, так и отобразить его на экране?
( /opt/mssql/bin/sqlservr & ) | grep -q "Service Broker manager has started"
Эта команда работает, но я не вижу вывод sqlserver
на экране.
Очень важно, чтобы скрипт ожидал, пока sqlserver
напечатает "Service Broker manager has started"
, прежде чем продолжить.
Вариант использования и исходный код
Это текущая настройка. Файлы сокращены.
--- Dockerfile
FROM mcr.microsoft.com/mssql/server:2019-latest
CMD ["/bin/bash", "dockerrun.sh"]
--- dockerrun.sh
# start DB and wait for it to be up.
( /opt/mssql/bin/sqlservr & ) | grep -q "Service Broker manager has started"
# restore the DB from backup file
~/sqlpackage/sqlpackage #args
# keep this script running, otherwise Docker will stop the container.
while sleep 1000; do :; done