You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					65 lines
				
				2.7 KiB
			
		
		
			
		
	
	
					65 lines
				
				2.7 KiB
			| 
											6 months ago
										 | # syntax=docker/dockerfile:1
 | ||
|  | 
 | ||
|  | # Comments are provided throughout this file to help you get started.
 | ||
|  | # If you need more help, visit the Dockerfile reference guide at
 | ||
|  | # https://docs.docker.com/go/dockerfile-reference/
 | ||
|  | 
 | ||
|  | # Want to help us make this template better? Share your feedback here: https://forms.gle/ybq9Krt8jtBL3iCk7
 | ||
|  | 
 | ||
|  | ################################################################################
 | ||
|  | 
 | ||
|  | # Learn about building .NET container images:
 | ||
|  | # https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
 | ||
|  | 
 | ||
|  | # Create a stage for building the application.
 | ||
|  | FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0-alpine AS build
 | ||
|  | 
 | ||
|  | COPY . /source
 | ||
|  | 
 | ||
|  | WORKDIR /source/SuperAPI
 | ||
|  | 
 | ||
|  | # This is the architecture you’re building for, which is passed in by the builder.
 | ||
|  | # Placing it here allows the previous steps to be cached across architectures.
 | ||
|  | ARG TARGETARCH
 | ||
|  | 
 | ||
|  | # Build the application.
 | ||
|  | # Leverage a cache mount to /root/.nuget/packages so that subsequent builds don't have to re-download packages.
 | ||
|  | # If TARGETARCH is "amd64", replace it with "x64" - "x64" is .NET's canonical name for this and "amd64" doesn't
 | ||
|  | #   work in .NET 6.0.
 | ||
|  | RUN --mount=type=cache,id=nuget,target=/root/.nuget/packages \
 | ||
|  |     dotnet publish -a ${TARGETARCH/amd64/x64} --use-current-runtime --self-contained false -o /app
 | ||
|  | 
 | ||
|  | # If you need to enable globalization and time zones:
 | ||
|  | # https://github.com/dotnet/dotnet-docker/blob/main/samples/enable-globalization.md
 | ||
|  | ################################################################################
 | ||
|  | # Create a new stage for running the application that contains the minimal
 | ||
|  | # runtime dependencies for the application. This often uses a different base
 | ||
|  | # image from the build stage where the necessary files are copied from the build
 | ||
|  | # stage.
 | ||
|  | #
 | ||
|  | # The example below uses an aspnet alpine image as the foundation for running the app.
 | ||
|  | # It will also use whatever happens to be the most recent version of that tag when you
 | ||
|  | # build your Dockerfile. If reproducability is important, consider using a more specific
 | ||
|  | # version (e.g., aspnet:7.0.10-alpine-3.18),
 | ||
|  | # or SHA (e.g., mcr.microsoft.com/dotnet/aspnet@sha256:f3d99f54d504a21d38e4cc2f13ff47d67235efeeb85c109d3d1ff1808b38d034).
 | ||
|  | FROM mcr.microsoft.com/dotnet/aspnet:7.0-alpine AS final
 | ||
|  | WORKDIR /app
 | ||
|  | 
 | ||
|  | # Copy everything needed to run the app from the "build" stage.
 | ||
|  | COPY --from=build /app .
 | ||
|  | 
 | ||
|  | # Create a non-privileged user that the app will run under.
 | ||
|  | # See https://docs.docker.com/go/dockerfile-user-best-practices/
 | ||
|  | ARG UID=10001
 | ||
|  | RUN adduser \
 | ||
|  |     --disabled-password \
 | ||
|  |     --gecos "" \
 | ||
|  |     --home "/nonexistent" \
 | ||
|  |     --shell "/sbin/nologin" \
 | ||
|  |     --no-create-home \
 | ||
|  |     --uid "${UID}" \
 | ||
|  |     appuser
 | ||
|  | USER appuser
 | ||
|  | 
 | ||
|  | ENTRYPOINT ["dotnet", "SuperAPITest.dll"]
 |