Как развернуть asp.net core + ms sql server в docker?

Пользователь

от magali , в категории: Другие , год назад

Как развернуть asp.net core + ms sql server в docker?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от catherine_wintheiser , год назад

@magali 

Для развёртывания ASP.NET Core и MS SQL Server в Docker, следуйте следующим шагам:

  1. Создайте файл Dockerfile в корневой папке вашего проекта ASP.NET Core. Пример Dockerfile:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Установка runtime ASP.NET Core
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80

# Установка среды разработки
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["YourProjectName.csproj", "YourProjectName/"]
RUN dotnet restore "YourProjectName/YourProjectName.csproj"
COPY . ./YourProjectName
WORKDIR "/src/YourProjectName"
RUN dotnet build "YourProjectName.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "YourProjectName.csproj" -c Release -o /app/publish

# Второй этап сборки
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "YourProjectName.dll"]


  1. Создайте docker-compose.yml файл в корневой папке вашего проекта. Пример docker-compose.yml:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
version: '3.7'
services:
  sql-server:
    image: mcr.microsoft.com/mssql/server
    environment: 
      - SA_PASSWORD=YourPassword123!
      - ACCEPT_EULA=Y
    ports:
      - "1433:1433"

  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
    depends_on:
      - sql-server


  1. Запустите команду docker-compose up в корневой папке вашего проекта. Docker будет автоматически скачивать все необходимые образы и разворачивать контейнеры.
  2. После успешного запуска Docker-контейнеров, вы сможете получить доступ к своему приложению ASP.NET Core по адресу http://localhost:80.


Убедитесь, что в файле appsettings.json в вашем проекте ASP.NET Core правильно указана строка подключения к MS SQL Server:

1
2
3
"ConnectionStrings": {
  "DefaultConnection": "Server=localhost,1433;Database=YourDatabaseName;User Id=sa;Password=YourPassword123!"
}


Здесь 'YourDatabaseName' - это название вашей базы данных, 'YourPassword123!' - это пароль, установленный при запуске контейнера MS SQL Server в docker-compose.yml.


Пожалуйста, обратите внимание, что это только основные шаги для развёртывания ASP.NET Core и MS SQL Server в Docker. В зависимости от вашего проекта и требований, может потребоваться дополнительная настройка и конфигурация для Docker.

Пользователь

от karen.wisozk , 7 месяцев назад

@magali 

Вам необходимо выполнить следующие шаги:

  1. Создать файл Dockerfile в корневой директории вашего проекта ASP.NET Core:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Используем базовый образ с ASP.NET Core
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80

# Образ для сборки проекта
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["YourProjectName.csproj", "YourProjectName/"]
RUN dotnet restore "YourProjectName/YourProjectName.csproj"
COPY . ./YourProjectName
WORKDIR "/src/YourProjectName"
RUN dotnet build "YourProjectName.csproj" -c Release -o /app/build

# Публикация проекта
FROM build AS publish
RUN dotnet publish "YourProjectName.csproj" -c Release -o /app/publish

# Запускаем проект в контейнере
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "YourProjectName.dll"]


  1. Создайте файл docker-compose.yml в корневой директории вашего проекта:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
version: '3.7'

services:
  sql-server:
    image: mcr.microsoft.com/mssql/server
    environment:
      SA_PASSWORD: "YourStrong!Passw0rd"
      ACCEPT_EULA: "Y"
    ports:
      - "1433:1433"

  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
    depends_on:
      - sql-server


  1. Запустите команду docker-compose up в корневой директории вашего проекта.


После запуска контейнеров, ваш ASP.NET Core приложение будет доступно по адресу http://localhost:80.


Убедитесь, что в файле appsettings.json вашего проекта ASP.NET Core правильно настроена строка подключения к SQL Server:

1
2
3
"ConnectionStrings": {
  "DefaultConnection": "Server=sql-server;Database=YourDatabaseName;User=sa;Password=YourStrong!Passw0rd;"
}


Где 'YourDatabaseName' - название вашей базы данных, 'YourStrong!Passw0rd' - пароль для доступа к SQL Server, установленный в файле docker-compose.yml.


Помните, что это базовая конфигурация и в зависимости от вашего проекта и требований, могут потребоваться дополнительные настройки.