This commit is contained in:
		
							
								
								
									
										52
									
								
								ops/devops/release/docker/Dockerfile.dotnet-service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								ops/devops/release/docker/Dockerfile.dotnet-service
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| # syntax=docker/dockerfile:1.7-labs | ||||
|  | ||||
| ARG SDK_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:10.0 | ||||
| ARG RUNTIME_IMAGE=gcr.io/distroless/dotnet/aspnet:latest | ||||
|  | ||||
| ARG PROJECT | ||||
| ARG ENTRYPOINT_DLL | ||||
| ARG VERSION=0.0.0 | ||||
| ARG CHANNEL=dev | ||||
| ARG GIT_SHA=0000000 | ||||
| ARG SOURCE_DATE_EPOCH=0 | ||||
|  | ||||
| FROM ${SDK_IMAGE} AS build | ||||
| ARG PROJECT | ||||
| ARG GIT_SHA | ||||
| ARG SOURCE_DATE_EPOCH | ||||
| WORKDIR /src | ||||
| ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 \ | ||||
|     DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 \ | ||||
|     NUGET_XMLDOC_MODE=skip \ | ||||
|     SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} | ||||
| COPY . . | ||||
| RUN --mount=type=cache,target=/root/.nuget/packages \ | ||||
|     dotnet restore "${PROJECT}" | ||||
| RUN --mount=type=cache,target=/root/.nuget/packages \ | ||||
|     dotnet publish "${PROJECT}" \ | ||||
|       -c Release \ | ||||
|       -o /app/publish \ | ||||
|       /p:UseAppHost=false \ | ||||
|       /p:ContinuousIntegrationBuild=true \ | ||||
|       /p:SourceRevisionId=${GIT_SHA} \ | ||||
|       /p:Deterministic=true \ | ||||
|       /p:TreatWarningsAsErrors=true | ||||
|  | ||||
| FROM ${RUNTIME_IMAGE} AS runtime | ||||
| WORKDIR /app | ||||
| ARG ENTRYPOINT_DLL | ||||
| ARG VERSION | ||||
| ARG CHANNEL | ||||
| ARG GIT_SHA | ||||
| ENV DOTNET_EnableDiagnostics=0 \ | ||||
|     ASPNETCORE_URLS=http://0.0.0.0:8080 | ||||
| COPY --from=build /app/publish/ ./ | ||||
| RUN set -eu; \ | ||||
|     printf '#!/usr/bin/env sh\nset -e\nexec dotnet %s "$@"\n' "${ENTRYPOINT_DLL}" > /entrypoint.sh; \ | ||||
|     chmod +x /entrypoint.sh | ||||
| EXPOSE 8080 | ||||
| LABEL org.opencontainers.image.version="${VERSION}" \ | ||||
|       org.opencontainers.image.revision="${GIT_SHA}" \ | ||||
|       org.opencontainers.image.source="https://git.stella-ops.org/stella-ops/feedser" \ | ||||
|       org.stellaops.release.channel="${CHANNEL}" | ||||
| ENTRYPOINT ["/entrypoint.sh"] | ||||
		Reference in New Issue
	
	Block a user