init a Dockerfile
This commit is contained in:
parent
a68287d847
commit
866619c539
3 changed files with 27 additions and 17 deletions
37
Dockerfile
37
Dockerfile
|
|
@ -1,25 +1,32 @@
|
|||
# syntax=docker/dockerfile:1
|
||||
# Learn about building .NET container images:
|
||||
# https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
|
||||
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0-alpine AS build
|
||||
ARG TARGETARCH=amd64
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
|
||||
WORKDIR /app
|
||||
EXPOSE 80
|
||||
EXPOSE 443
|
||||
|
||||
WORKDIR /source
|
||||
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
||||
WORKDIR /src
|
||||
COPY ["/src", "/src"]
|
||||
COPY "Directory.Packages.props" "Directory.Packages.props"
|
||||
|
||||
# Copy project file and restore as distinct layers
|
||||
COPY --link src src
|
||||
COPY --link Directory.Packages.props .
|
||||
RUN dotnet nuget add source https://isn.pschneider.fr/v3/index.json --allow-insecure-connections
|
||||
|
||||
RUN dotnet nuget add source https://isn.pschneider.fr/v3/index.json
|
||||
RUN dotnet restore -a $TARGETARCH src/Yavsc/Yavsc.csproj
|
||||
# Just to see if two lines above work
|
||||
RUN dotnet nuget list source
|
||||
|
||||
RUN dotnet restore "/src/Yavsc/Yavsc.csproj"
|
||||
|
||||
# Copy source code and publish app
|
||||
RUN dotnet publish -a $TARGETARCH --no-restore -o /app src/Yavsc/Yavsc.csproj
|
||||
|
||||
# Runtime stage
|
||||
FROM mcr.microsoft.com/dotnet/runtime:10.0-alpine
|
||||
WORKDIR "/src/Yavsc"
|
||||
RUN dotnet build "Yavsc.csproj" -c Release -o /app/build
|
||||
|
||||
FROM build AS publish
|
||||
RUN dotnet publish "Yavsc.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
||||
|
||||
FROM base AS final
|
||||
WORKDIR /app
|
||||
COPY --link --from=build /app .
|
||||
USER $APP_UID
|
||||
ENTRYPOINT ["./Yavsc"]
|
||||
|
||||
COPY --from=publish /app/publish .
|
||||
ENTRYPOINT ["dotnet", "Yavsc.dll"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue