Как создать соединение sql и как создать файл .sql и сценарии миграции в докере?

Мы разрабатываем образец poc по микросервисам. Мы застряли на sql-соединении с докером. Как создать сценарии миграции и файл .sql, как мы можем развернуть эти сценарии в докере. Может ли кто-нибудь дать какую-нибудь демонстрацию и код на ней.

Что работает на докере? SQL Server? В этом случае вы можете просто подключиться, используя обычные строки подключения, все, что вам нужно знать, это ip-адрес, на котором работает ваш sql-сервер.

GuidoG 31.10.2018 14:31

Может это вам немного поможет docs.microsoft.com/en-us/sql/linux/…

GuidoG 31.10.2018 14:32

@GuidoG, если вы не знаете, значит, не комментируйте.

charan tej 22.11.2018 11:44
3
3
47
1

Ответы 1

Итак, если ваш сервер находится за пределами докера (что единственно разумно). Вы можете сделать это с помощью файла докера:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app

FROM microsoft/dotnet:sdk AS build
WORKDIR /src
ARG connectionString
ENV CONNECTION_STRING=$connectionString
COPY ["*********.csproj", "*********/"]
RUN dotnet restore "*********.csproj"
COPY . .
WORKDIR "/*********"
RUN dotnet build "*********" -c Release -o /app
RUN dotnet ef database update <------ HERE 

FROM build AS publish
RUN dotnet publish "*********" -c Release -o /app

FROM base AS final
ENV ASPNETCORE_ENVIRONMENT=PROD
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "*********"]

в

RUN dotnet ef database update

(если вы не используете ядро ​​.net, то кое-что может измениться.)

в вашем стартап-проекте должно быть что-то вроде:

public static string ConnectionString
{
    get
    {
        if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "PROD")
        {
            return Environment.GetEnvironmentVariable("CONNECTION_STRING");
        }
        else
        {
            return @"Server=.;Database=database;Trusted_Connection=True;ConnectRetryCount=0";
        }

    }
}

public UsersDbContext CreateDbContext(string[] args)
{
    var optionsBuilder = new DbContextOptionsBuilder<UsersDbContext>();
    optionsBuilder.UseSqlServer(ConnectionString);

    return new UsersDbContext(optionsBuilder.Options);
}

внутри

public class XXXXXContextFactory : IDesignTimeDbContextFactory<XXXXXDbContext>

и в конце, когда ты бежишь

- docker build -f xxxxxx/Dockerfile -t xxxxx.azurecr.io/xxxxx:latest . --build-arg connectionString="some connection string"

ваша сборка докеров должна завершить процесс миграции

я создал миграции и как я могу развернуть эти сценарии миграции в докере

charan tej 01.11.2018 08:03

Другие вопросы по теме