Build a Minimal API with HereDoc and Docker
1 min readMay 3, 2022
With Docker supporting HereDoc we are now able to create a full minimal API within a docker file, allowing us to use a single file build everything we need.
You can watch the full video on YouTube
``` Dockerfile
# 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” ]
```
Please reach out for any questions or clarifications