net-base/Dockerfile
David Claeys b2ea502343
All checks were successful
Build docker container / build (release) Successful in 51s
update dockerfile and action
2025-04-01 16:06:12 +02:00

50 lines
2.2 KiB
Docker

ARG CERT_PASSWORD
ARG DOTNET_SDK_VERSION=9.0.202
ARG DOTNET_RUNTIME_VERSION=9.0.3
ARG ALPINE_VERSION=3.21
ARG CONFIG_DIRECTORY_ARG=/config
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_SDK_VERSION}-alpine${ALPINE_VERSION}-amd64 AS build-env
ARG CONFIG_DIRECTORY_ARG
ENV CONFIG_DIRECTORY=$CONFIG_DIRECTORY_ARG
ARG CERT_PASSWORD
RUN mkdir $CONFIG_DIRECTORY \
&& apk upgrade --update-cache --available \
&& apk add openssl \
&& rm -rf /var/cache/apk/* \
&& dotnet dev-certs https --export-path /config/aspnetapp.pem --password "$CERT_PASSWORD" --format PEM
FROM mcr.microsoft.com/dotnet/aspnet:${DOTNET_RUNTIME_VERSION}-alpine${ALPINE_VERSION}-amd64
ARG CONFIG_DIRECTORY_ARG
ENV CONFIG_DIRECTORY=$CONFIG_DIRECTORY_ARG
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
ENV ASPNETCORE_ENVIRONMENT=Production
ENV ASPNETCORE_URLS=http://+:80;https://+:443
ENV CERTIFICATES_DIRECTORY=/usr/local/share/ca-certificates
ENV ASPNETCORE_Kestrel__Certificates__Default__Path=$CERTIFICATES_DIRECTORY/aspnetapp.crt
ENV ASPNETCORE_Kestrel__Certificates__Default__KeyPath=$CERTIFICATES_DIRECTORY/aspnetapp.key
ENV TZ=Europe/Brussels
ARG CERT_PASSWORD
RUN apk update \
&& apk upgrade --available \
&& apk add ca-certificates \
&& apk add tzdata \
&& rm -rf /var/cache/apk/* \
&& mkdir -p $CERTIFICATES_DIRECTORY \
&& mkdir -p $CONFIG_DIRECTORY
COPY --from=build-env $CONFIG_DIRECTORY $CONFIG_DIRECTORY
RUN CERT_PASSWORD=$(cat $CERT_PASSWORD_FILE) \
&& cp $CONFIG_DIRECTORY/aspnetapp.pem $ASPNETCORE_Kestrel__Certificates__Default__Path \
&& cp $CONFIG_DIRECTORY/aspnetapp.key $ASPNETCORE_Kestrel__Certificates__Default__KeyPath \
&& rm -rf $CONFIG_DIRECTORY \
&& chmod 755 $ASPNETCORE_Kestrel__Certificates__Default__Path \
&& chmod +x $ASPNETCORE_Kestrel__Certificates__Default__Path \
&& chown app:app $ASPNETCORE_Kestrel__Certificates__Default__Path \
&& cat $ASPNETCORE_Kestrel__Certificates__Default__Path >> /etc/ssl/certs/ca-certificates.crt \
&& chmod 755 $ASPNETCORE_Kestrel__Certificates__Default__KeyPath \
&& chmod +x $ASPNETCORE_Kestrel__Certificates__Default__KeyPath \
&& chown app:app $ASPNETCORE_Kestrel__Certificates__Default__KeyPath \
&& update-ca-certificates
ENV ASPNETCORE_Kestrel__Certificates__Default__Password=$CERT_PASSWORD
EXPOSE 80
EXPOSE 443