Не удается создать контейнер Docker для проекта базы данных SQL в Script.PostDeployment

Я очень новичок в Docker, и я нахожусь в процессе создания контейнера Docker для проекта базы данных SQL в Visual Studio 2017 15.8.6. Проект содержит две основные таблицы и Script.PostDeployment.sql для заполнения таблиц некоторыми тестовыми данными.

Проект строит и публикует нормально локально, но когда я пытаюсь запустить docker compose, сценарий после развертывания завершается неудачно с ошибками ограничения повторяющихся ключей, как если бы сценарий уже был запущен. Если я удалю сценарий после развертывания, контейнер будет создан без проблем.

Вот мои сценарии:

докер-compose.yml:

version: '3.4'

services:
  dockertestsql:
    image: ${DOCKER_REGISTRY}dockertestsql
    container_name: mssql
    build:
      context: .\DockerTestSQL
      dockerfile: Dockerfile

Dockerfile: (тестирование без пароля на данный момент:))

# escape=`

FROM microsoft/mssql-server-windows-developer
SHELL ["powershell"]

EXPOSE 1433
VOLUME c:\database
ENV ACCEPT_EULA=Y

Script-PostDeployment.sql (помеченный как PostDeploy):

:r .\Data\dbo.Contacts.Table.sql
GO
:r .\Data\dbo.Attendance.Table.sql
GO

у двух ссылочных сценариев просто есть список операторов INSERT в соответствующей таблице.

База данных не была создана в контейнере, хотя dacpac действительно создается (по какой-то причине в inetpub\wwwroot, даже если я указываю WORKDIR), чего я и ожидал (я не говорю Docker публиковать БД). Если я запускаю sqlcmd для контейнера, в списке отображаются только 4 системные базы данных по умолчанию.

0 ответов

Другие вопросы по тегам