拥有包含两个项目的 Visual Studio 2017 (15.3) 解决方案:
- 用 ASP.NET Core 2 MVC 编写的 API
- 数据库项目
我能够轻松地“dockerize”MVC 项目(右键单击,添加 Docker 支持)但是在尝试 dockerize 数据库项目时不断收到错误:Value cannot be null。参数名称: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
修改 docker-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 文件以公开用于开发 SSMS 访问的端口
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.
提前致谢!
最佳答案
我昨天遇到了同样的问题。我只是通过删除数据库服务的构建部分来解决它。我现在只需手动构建数据库项目。
关于sql-server - Visual Studio 2017 15.3 Dockerize 数据库项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45685155/