Рейтинг:0

Запустите сценарий SQL при создании контейнера докера Ms SQL Server.

флаг in

Я хочу запустить скрипт sql для установки контейнера MS SQL.

Если я делаю все по отдельности, все работает нормально:

  1. Запустить контейнер docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password" -p 1434:1433 --name ms-sql -d mcr.microsoft.com/mssql/server:2019-latest

  2. Подключиться к контейнеру docker exec -it ms-sql "bash"

  3. Запустить SQL /opt/mssql-tools/bin/sqlcmd -S localhost -US SA -P 'Пароль' -Q 'создать базу данных TestDB12'

Но если попытаться сделать то же самое при создании контейнера

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password" -p 1434:1433 --name ms-sql -d mcr.microsoft.com/mssql/server:2019-latest sh -c "/opt/mssql -tools/bin/sqlcmd -S localhost -US SA -P 'Пароль' -Q 'создать базу данных TestDB12'"

sqlcmd не может войти в систему с ошибкой

Sqlcmd: Ошибка: Драйвер Microsoft ODBC 17 для SQL Server: время ожидания входа истекло.
Sqlcmd: ошибка: драйвер Microsoft ODBC 17 для SQL Server: поставщик TCP: код ошибки 0x2749.
Sqlcmd: Ошибка: драйвер Microsoft ODBC 17 для SQL Server: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и настроен ли SQL Server для разрешения удаленных подключений. Дополнительные сведения см. в электронной документации по SQL Server.
Рейтинг:1
флаг in

Путем предоставления sh -c "/opt/mssql-tools/bin/sqlcmd... к команде запуска вы замена команда, которая запускает SQL-сервер в контейнере с sqlcmd команда.

Сервер не запущен внутри контейнера. Вам нужно сначала запустить его и запустить команду после завершения запуска.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.