26 lines
885 B
Docker
26 lines
885 B
Docker
# Stage 1: Build
|
|
FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build
|
|
WORKDIR /src
|
|
|
|
COPY ["src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj", "src/GmRelay.DiscordBot/"]
|
|
COPY ["src/GmRelay.ServiceDefaults/GmRelay.ServiceDefaults.csproj", "src/GmRelay.ServiceDefaults/"]
|
|
COPY ["src/GmRelay.Shared/GmRelay.Shared.csproj", "src/GmRelay.Shared/"]
|
|
|
|
RUN dotnet restore "src/GmRelay.DiscordBot/GmRelay.DiscordBot.csproj"
|
|
|
|
COPY src/ src/
|
|
WORKDIR /src/src/GmRelay.DiscordBot
|
|
RUN dotnet publish "GmRelay.DiscordBot.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
|
|
|
# Stage 2: Runtime
|
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble AS final
|
|
WORKDIR /app
|
|
|
|
# Install wget for healthcheck
|
|
RUN apt-get update && apt-get install -y --no-install-recommends wget \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=build /app/publish .
|
|
USER $APP_UID
|
|
ENTRYPOINT ["dotnet", "GmRelay.DiscordBot.dll"]
|