的Visual Studio 2017年15.3 Dockerize数据库项目
问题描述:
了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.
提前感谢!
答
昨天我遇到了同样的问题。我只是通过删除数据库服务的构建部分来解决它。我现在只需手动构建数据库项目。
答
作为解决方法,您可以将名为AppType.cache
的文件添加到/obj/Docker
,内容为AspNetCore
。
+1
这不适合我。 –
而不是覆盖,合并内容在一个码头,compsoe,看看它是否有帮助 –
@TarunLalwani我试着沿W /其他变体的撰写文件。我最好的猜测是,VS码头组成的跑步者使用来自.csproj构建API映像,但无法从.dbproj中提取信息来构建数据库映像。我尝试手动添加/模仿从.csproj值到.dbproj值没有任何进展。 –
我在使用15.2构建的多个Docker容器的解决方案上遇到同样的错误,但现在失败了15.3。 –