53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # 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"]
 |