55 lines
1.9 KiB
Docker
55 lines
1.9 KiB
Docker
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
|
|
|
FROM alpine:latest AS base
|
|
ENV \
|
|
# UID of the non-root user 'app'
|
|
APP_UID=1654 \
|
|
# Configure web servers to bind to port 8080 when present
|
|
ASPNETCORE_HTTP_PORTS=8080 \
|
|
# Enable detection of running in a container
|
|
DOTNET_RUNNING_IN_CONTAINER=true \
|
|
# Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20)
|
|
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true
|
|
|
|
#RUN apk add --upgrade --no-cache \
|
|
# ca-certificates-bundle \
|
|
# \
|
|
# # .NET dependencies
|
|
# libgcc \
|
|
# libssl3 \
|
|
# libstdc++ \
|
|
# zlib
|
|
|
|
# Create a non-root user and group
|
|
RUN addgroup \
|
|
--gid=$APP_UID \
|
|
app \
|
|
&& adduser \
|
|
--uid=$APP_UID \
|
|
--ingroup=app \
|
|
--disabled-password \
|
|
app
|
|
WORKDIR /app
|
|
USER app
|
|
EXPOSE 8080
|
|
|
|
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build
|
|
# Install clang/zlib1g-dev dependencies for publishing to native
|
|
RUN apk add clang zlib-dev musl-dev libc6-compat
|
|
ARG BUILD_CONFIGURATION=Release
|
|
WORKDIR /src
|
|
COPY ["AS1024.GeoFeed.MinimalAPI/AS1024.GeoFeed.MinimalAPI.csproj", "AS1024.GeoFeed.MinimalAPI/"]
|
|
RUN dotnet restore "./AS1024.GeoFeed.MinimalAPI/./AS1024.GeoFeed.MinimalAPI.csproj"
|
|
COPY . .
|
|
WORKDIR "/src/AS1024.GeoFeed.MinimalAPI"
|
|
RUN dotnet build "./AS1024.GeoFeed.MinimalAPI.csproj" -c $BUILD_CONFIGURATION -o /app/build
|
|
|
|
FROM build AS publish
|
|
ARG BUILD_CONFIGURATION=Release
|
|
RUN dotnet publish "./AS1024.GeoFeed.MinimalAPI.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=true /p:DebugType=None /p:DebugSymbols=false
|
|
|
|
FROM base AS final
|
|
WORKDIR /app
|
|
EXPOSE 8080
|
|
COPY --from=publish /app/publish .
|
|
ENTRYPOINT ["./AS1024.GeoFeed.MinimalAPI"] |