ARG DOTNET_SDK_VERSION=8.0.407 ARG DOTNET_RUNTIME_VERSION=8.0.14 ARG ALPINE_VERSION=3.21 ARG CONFIG_DIRECTORY_ARG=/config ARG CERT_PASSWORD_FILE_ARG=$CONFIG_DIRECTORY_ARG/password FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_SDK_VERSION}-alpine${ALPINE_VERSION}-amd64 AS build-env ARG CERT_PASSWORD_FILE_ARG ENV CERT_PASSWORD_FILE=$CERT_PASSWORD_FILE_ARG ARG CONFIG_DIRECTORY_ARG ENV CONFIG_DIRECTORY=$CONFIG_DIRECTORY_ARG RUN mkdir $CONFIG_DIRECTORY \ && apk upgrade --update-cache --available \ && apk add openssl \ && rm -rf /var/cache/apk/* \ && openssl rand -base64 12 >> "$CERT_PASSWORD_FILE" \ && CERT_PASSWORD=$(cat $CERT_PASSWORD_FILE) \ && 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 CERT_PASSWORD_FILE_ARG ENV CERT_PASSWORD_FILE=$CERT_PASSWORD_FILE_ARG 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 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 \ && 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 \ && update-ca-certificates ENV ASPNETCORE_Kestrel__Certificates__Default__Password=$CERT_PASSWORD EXPOSE 80 EXPOSE 443