Docker -композиция использует неправильно ASP. NET Базовая версия (3.0 вместо 3.1) - PullRequest
0 голосов
/ 02 марта 2020

Как видно из заголовка, docker -compose пытается создать 3.0 ASP. NET Core Image вместо 3.1.

Я недавно обновил свой проект с 3.0, используя инструкции этого Microsoft статья: https://docs.microsoft.com/en-us/aspnet/core/migration/30-to-31?view=aspnetcore-3.1&tabs=visual-studio кроме глобальной. json часть, так как я не использую ее.

Вот что я попробовал:

enter image description here

Это мой файл yaml:

version: "3.7"
services:
    hraapi: 
        build: .
        environment:
            - ASPNETCORE_ENVIRONMENT=Development
        image: vmandeal/hra.api:testing
        container_name: hra.api
        ports:
            - "5000:80"
        depends_on:
            - hradb
    hradb:
        image: "mcr.microsoft.com/mssql/server:2019-latest"
        container_name: hra.api.db
        ports:
            - "1433:1433"
        environment:
            SA_PASSWORD: "YeyPass"
            ACCEPT_EULA: "Y"

А это мой файл проекта:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
    <PackageReference Include="FluentValidation.AspNetCore" Version="8.5.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.1">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.1">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.1" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.1" />
    <PackageReference Include="Steeltoe.Discovery.ClientCore" Version="2.4.0" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc4" />
  </ItemGroup>

</Project>

1 Ответ

1 голос
/ 03 марта 2020

Вам необходимо воссоздать файл docker,

. В вашем файле docker есть ключевое слово FROM, которое показывает, с какого изображения должен начинаться контейнер.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["MainApplication/MainApplication.csproj", "MainApplication/"]
RUN dotnet restore "MainApplication/MainApplication.csproj"
COPY . .
WORKDIR "/src/MainApplication"
RUN dotnet build "MainApplication.csproj" -c Release -o /app/build

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

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

В VisualStudio просто щелкните правой кнопкой мыши свой проект Add-->Docker Support, чтобы воссоздать файл docker.

enter image description here

...