【发布时间】:2019-06-22 16:44:10
【问题描述】:
我正在尝试在 Docker 容器中安装 SQL Server 和 .NET 4.7.2。
- 我需要能够启动 .net 4.7.2 服务
- 启动 test.dll
- .NET 4.7.2 服务将查询 SQL Server 数据库
我尝试通过 docker 文件安装它们,但在安装 .NET 4.7.2 时它一直失败,因为它需要重新启动“计算机”。我通过 docker build a dockerfile 试过了。
我还尝试通过 Chocolatey 在我的 SQL Server 容器中安装 .net 4.7.2,但它也需要重新启动。这是行不通的。
我还尝试通过 Chocolatey 在我的 .net 4.7.2 容器上安装 SQL Server,但仍然失败。
下一步,我正在考虑创建一个 SQL Server 容器和另一个 .net 4.7.2 容器,它们将运行我的测试并启动我的服务。然后链接它们,以便它可以与 SQL Server 容器中的数据库通信。问题是我很难将它们联系在一起。
请注意,这不是一个 ASP.NET 项目(有很多关于 ASP.NET 和 SQL Server 的教程,但不适用于我的案例)...
请参阅下面的 dockerfile:
FROM microsoft/mssql-server-windows-developer
ENV sa_password=Passw0rd
ENV ACCEPT_EULA=Y
ENV download_url="https://download.microsoft.com/download/9/2/2/9228AAC2-90D1-4F48-B423-AF345296C7DD/EN/x64/DacFramework.msi"
ENV NET_DP_472 https://download.microsoft.com/download/6/E/4/6E48E8AB-DC00-419E-9704-06DD46E5F81D/NDP472-KB4054530-x86-x64-AllOS-ENU.exe
RUN Invoke-WebRequest -Uri $env:download_url -OutFile DacFramework.msi ; `
Start-Process msiexec.exe -ArgumentList '/i', 'DacFramework.msi', '/quiet', '/norestart' -NoNewWindow -Wait; `
Remove-Item -Force DacFramework.msi
# net framework -> 472
RUN Invoke-WebRequest $Env:NET_DP_472 -OutFile framework472.exe -UseBasicParsing;
Start-Process framework472.exe -ArgumentList '/q' -Wait;
Remove-Item -Force framework472.exe
【问题讨论】:
-
您确定需要将它们放在同一个容器中吗?标准做法是在一个容器中运行 SQL,在另一个容器中运行 .NET。两者都有官方 Docker 镜像。
标签: .net sql-server docker containers