Как развернуть приложение .net core 2.1.0 в докере - PullRequest
0 голосов
/ 09 июня 2018

У меня есть приложение ASP.NET Core 2.1.0.База данных, управляющая приложением, - Postgres.

Я хочу развернуть приложение и его базу данных в виде контейнеров.В одном контейнере находится приложение, а в другом - база данных Postgres.

Я много искал, но не смог найти пошаговое руководство, как этого добиться.

Локально, мое приложение работает нормально,В Visual Studio 2017 (15.7.3) я затем щелкнул правой кнопкой мыши по файлу проекта и нажал на «Добавить поддержку Docker».Это дало мне следующий файл Docker:

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

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY Phoneden.Web/Phoneden.Web.csproj Phoneden.Web/
COPY Phoneden.DataAccess/Phoneden.DataAccess.csproj Phoneden.DataAccess/
COPY Phoneden.Entities/Phoneden.Entities.csproj Phoneden.Entities/
COPY Phoneden.Services/Phoneden.Services.csproj Phoneden.Services/
COPY Phoneden.ViewModels/Phoneden.ViewModels.csproj Phoneden.ViewModels/
RUN dotnet restore Phoneden.Web/Phoneden.Web.csproj
COPY . .
WORKDIR /src/Phoneden.Web
RUN dotnet build Phoneden.Web.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish Phoneden.Web.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Phoneden.Web.dll"]

Это также дало мне docker-compose.yml файл.Внутри этого я поместил следующее:

version: '3.4'

services:
  phoneden.web:
    build:
      context: .
      dockerfile: Phoneden.Web/Dockerfile
    environment:
      PaginationSettings: 10
      DefaultConnection: Server=postgres-db;Database=phoneden;Username=postgres;Password=admin;Port=5432;
    container_name: phoneden-web
    depends_on:
      - db
  db:
    image: postgres:10.4
    restart: always
    ports:
       - 5432:5432
    environment:
      POSTGRES_PASSWORD: admin
    container_name: postgres-db

ОБНОВЛЕНИЕ

Используя эту программу Я смог обнаружить, что порт 5432 уже былиспользуется локальной установкой Postgres.Я изменил порты на db: в моем docker-compose.yml файле на 5434:5434, и теперь Postgres Db, кажется, работает нормально.Тем не менее, основное приложение asp.net теперь не работает, и я получаю это.

enter image description here

...