2

了Visual Studio 2017年(15.3)两个项目的解决方案:的Visual Studio 2017年15.3 Dockerize数据库项目

  • 写在ASP.NET的Core 2 MVC
  • 数据库项目
  • 的API

我能够轻松地“dockerize”MVC项目(右键单击,添加Docker支持),但试图dockerize数据库项目时不断收到错误:Value cannot be null. Parameter name: stream。我的Google-fu让我失望; closest resource found is for Visual Studio 15.2

我如何已经安装数据库项目到目前为止

新增Dockerfile根:

FROM microsoft/mssql-server-linux:latest 
EXPOSE 1433 
ENV ACCEPT_EULA=Y 
ENV LANG en_US.UTF-8 
ENV LANGUAGE en_US:en 
ENV LC_ALL en_US.UTF-8 
ENV MSSQL_TCP_PORT=1433 

# Add Database project output from VS build process 
RUN mkdir --parents /_scripts/generated 
COPY ./_scripts /_scripts/ 
COPY ./_scripts/generated/*.sql /_scripts/generated/ 
# Add shell script that starts MSSQL server, waits 60 seconds, then executes script to build out DB (script generated from VS build process) 
CMD /bin/bash /_scripts/entrypoint.sh 

修改搬运工,compose.yml文件,包括新的项目

version: '3' 

services: 
    webapp-api-service: 
    image: webapp-api 
    build: 
     context: ./src/API 
     dockerfile: Dockerfile 

    webapp-db-service: 
    image: webapp-db 
    build: 
     context: ./src/Database 
     dockerfile: Dockerfile 

将docker-composeoverride.yml文件修改为展示dev的SSMS e插槽接入

version: '3' 

services: 
    webapp-api-service: 
    environment: 
     - ASPNETCORE_ENVIRONMENT=Development 
    ports: 
     - "80" 

    webapp-db-service: 
    ports: 
     - "1433" 

下面是构建输出

2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(279,5): error : Value cannot be null. 
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(279,5): error : Parameter name: stream 
2>Done building project "docker-compose.dcproj" -- FAILED. 

提前感谢!

+0

而不是覆盖,合并内容在一个码头,compsoe,看看它是否有帮助 –

+0

@TarunLalwani我试着沿W /其他变体的撰写文件。我最好的猜测是,VS码头组成的跑步者使用来自.csproj构建API映像,但无法从.dbproj中提取信息来构建数据库映像。我尝试手动添加/模仿从.csproj值到.dbproj值没有任何进展。 –

+0

我在使用15.2构建的多个Docker容器的解决方案上遇到同样的错误,但现在失败了15.3。 –

回答

1

昨天我遇到了同样的问题。我只是通过删除数据库服务的构建部分来解决它。我现在只需手动构建数据库项目。

0

作为解决方法,您可以将名为AppType.cache的文件添加到/obj/Docker,内容为AspNetCore

+1

这不适合我。 –