在Script.PostDeployment

时间:2018-11-09 12:08:57

标签: docker visual-studio-2017 sqlproj

我是Docker的新手,目前正在Visual Studio 2017 15.8.6中为SQL数据库项目创建Docker容器。该项目包含两个基本表和一个Script.PostDeployment.sql,用于使用一些测试数据填充表。

该项目可以在本地很好地构建和发布,但是当我尝试运行docker compose时,部署后脚本失败,并出现重复的键约束错误,就好像该脚本已经在运行。如果我删除了部署后脚本,则创建容器没有问题。

这是我的脚本:

docker-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发布D B)。如果在容器上运行sqlcmd,则仅列出4个默认系统数据库。

0 个答案:

没有答案