docker-compose
version: '3.4'
services:
coredocker:
image: coredocker
build:
context: .
dockerfile: CoreDocker/Dockerfile
sql.data:
image: microsoft/mssql-server-linux:2017-latest
environment:
- SA_PASSWORD=Pass@word
- ACCEPT_EULA=Y
ports:
- "1433:1433"
appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
secrets.json
"ConnectionStrings:LocalContext": "Data Source=localhost,1433;Initial Catalog=tempdb;Persist Security Info=True;User ID=sa;Password=Pass@word;Trust Server Certificate=True",
"ConnectionStrings:DockerContext": "Server=sql.data;Database=tempdb;User=sa;Password=Pass@word;TrustServerCertificate=true;",
program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<DockerContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DockerContext") ?? throw new InvalidOperationException("Connection string 'DockerContext' not found.")));
Код выше прекрасно работает внутри контейнера. Но как только мне надо провести обновление базы данных,
dotnet ef database update --context DockerContext
приходится менять в конфиге
Server=sql.data,1433;
на
Server=localhost,1433;
как собрать общий конфиг чтоб не было необходимости в постоянных изменения в secrets.json ?