Инициализация БД MSSQL в DOCKER
Подскажите как инициировать БД после запуска docker mssql
DOCKER-COMPOSE:
version: "3.2"
services:
test-database:
build: ./mssql_database
ports:
- "1433:1433"
environment:
SA_PASSWORD: "Super_puper_password"
ACCEPT_EULA: "Y"
TZ: "UTC"
DOCKERFILE:
FROM microsoft/mssql-server-linux:2017-latest
COPY setup.sql /docker-entrypoint-initdb.d/
БД поднимается, но setup.sql не запускается
Ответы (1 шт):
Автор решения: Dilitand
→ Ссылка
Разобрался как это все дело запустить. Оставлю тут для потомков.
dockerfile
FROM microsoft/mssql-server-linux:2017-latest
COPY setup.sql /docker-entrypoint-initdb.d/
COPY entrypoint.sh /docker-entrypoint-initdb.d/
COPY import-data.sh /docker-entrypoint-initdb.d/
#CMD /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P Super_puper_password -d master -i /docker-entrypoint-initdb.d/setup.sql
#Ставим обновления и меняем формат файлов на тип юникса если будут ошибки в файлах типа \r
#RUN apt-get -y update && \
# apt-get install -y dos2unix
#RUN dos2unix /docker-entrypoint-initdb.d/entrypoint.sh
#RUN dos2unix /docker-entrypoint-initdb.d/import-data.sh
#Даем права на энтрипоинт
RUN chmod +x /docker-entrypoint-initdb.d/entrypoint.sh
#Говорим докеру запустить наш энтрипоинт
ENTRYPOINT /bin/bash /docker-entrypoint-initdb.d/entrypoint.sh
docker-compose
version: "3.2"
services:
test-database:
build: ./mssql_database
ports:
- "1433:1433"
environment:
SA_PASSWORD: "Super_puper_password"
ACCEPT_EULA: "Y"
TZ: "UTC"
entrypoint:
/docker-entrypoint-initdb.d/import-data.sh & /opt/mssql/bin/sqlservr
import-data.sh
echo "Sleeping 90 sec" && sleep 90s && echo /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P Super_puper_password -d master -i /docker-entrypoint-initdb.d/setup.sql && /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P Super_puper_password -d master -i /docker-entrypoint-initdb.d/setup.sql && echo "setup.sql completed"