既存のAPIからDocker for Desktopで作成したsql serverコンテナに接続したい。
仕様環境
API側
ASP.net Core API フレームワーク .NET5.0
Docker for Desktop側
SQL Server 2019 Linux コンテナーイメージ
現在 Visual Studio 2019で作成した APIにDocker for Desktopで作成した
sql server Linux コンテナーイメージに接続したいと思っております。
ASP.net core API側のappsettings.jsonの接続文字列について変更して接続、
もしくはAPI側のDocker file内で接続文字列を追加するのかご教授いただければと思います。
(追記)ASP.net Coreで作成したAPIはDockerを挟まず、既存のSql ServerのローカルDB環境には
IIS上から接続できております。また、接続文字列はAPI内のappsettings.json内のDefaultConnection
を用いて接続しております。以下APIのappsettings.jsonのコードのになります。
{ "ConnectionStrings": { "DefaultConnection": "Data Source=localhost;Initial Catalog=ContosoUniversity1;User ID=SA;Password=<YourStrong!Passw0rd>" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information", "Microsoft.EntityFrameworkCore.Database.Command": "Information" } }, "AllowedHosts": "*" }
また、VisualのDocker自動生成にてDockerfileの生成を行いましたのでDockerfileとAPI全体のプロパティを
載せておきます。
Dockerfile #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /src COPY ["SampleAPI001/SampleAPI001.csproj", "SampleAPI001/"] RUN dotnet restore "SampleAPI001/SampleAPI001.csproj" COPY . . WORKDIR "/src/SampleAPI001" RUN dotnet build "SampleAPI001.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "SampleAPI001.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "SampleAPI001.dll"]
launchSettings.json { "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:24399", "sslPort": 44335 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" } }, "ContosoUniversity": { "commandName": "Project", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" }, "dotnetRunMessages": "true", "applicationUrl": "https://localhost:5001;http://localhost:5000" }, "Docker": { "commandName": "Docker", "launchBrowser": true, "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", "environmentVariables": { "ASPNETCORE_URLS": "https://+:443;http://+:80", "ASPNETCORE_HTTPS_PORT": "44360" }, "httpPort": 51803, "useSSL": true, "sslPort": 44360 } } }
作成した Sql server Linux コンテナ Power Shell上で実施 docker pull mcr.microsoft.com/mssql/rhel/server:2019-CU1-rhel-8 docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1433:1433 -d mcr.microsoft.com/mssql/rhel/server:2019-CU1-rhel-8
現在稼働しているdockerコンテナ PS C:\Users\mycomputer> docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 77eccb6eab1b contosouniversity:dev "tail -f /dev/null" 12 minutes ago Up 12 minutes 0.0.0.0:51803->80/tcp, :::51803->80/tcp, 0.0.0.0:44360->443/tcp, :::44360->443/tcp SampleAPI001 853e85ecd04a mcr.microsoft.com/mssql/rhel/server:2019-CU1-rhel-8 "/opt/mssql/bin/perm…" 2 days ago Up 22 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp practical_swirles
あなたの回答
tips
プレビュー