Создание минимального API с помощью HereDoc и Docker

Благодаря Docker, поддерживающему HereDoc, мы теперь можем создать полный минимальный API в файле docker, что позволяет нам использовать один файл для сборки всего необходимого.

Вы можете посмотреть полное видео на YouTube

# syntax=docker/dockerfile:1.4

# specify base image
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env

# create directory
WORKDIR /app

# Create the csproj file with Here Dock
COPY <<EOF demo.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
    <PropertyGroup>
        <TargetFramework>net6.0</TargetFramework>
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
    </PropertyGroup>
</Project>
EOF

# restoring the csproj file
RUN dotnet restore

# creating the program.cs for out .net application with heretic
COPY <<EOF Program.cs
    var builder = WebApplication.CreateBuilder(args);
    var app = builder.Build();
    app.MapGet("/hello", () => "Hi There from docker file");
    app.MapGet("/teamLH", () => "7 times world champion");
    app.Run();
EOF

# publishing our application
RUN dotnet publish -c Release -o out

# preparing the final image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
EXPOSE 80
EXPOSE 443
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT [ "dotnet", "demo.dll" ]
Вход в полноэкранный режим Выход из полноэкранного режима

Пожалуйста, обращайтесь за любыми вопросами или уточнениями

Оцените статью
Procodings.ru
Добавить комментарий