diff --git a/Dockerfile b/Dockerfile index 33b19e95..8e96d6df 100644 --- a/Dockerfile +++ b/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"] diff --git a/Makefile b/Makefile index bde8014f..bf73d4d2 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ CONFIG=Debug -FRAMEWORK=net8.0 +FRAMEWORK=net9.0 DESTDIR=/tmp/yavsc all: @@ -34,4 +34,7 @@ publish: install: publish sudo chown -R www-data:www-data $(DESTDIR)/srv/www/yavsc +docker-image: + docker build . + .PHONY: diff --git a/src/Yavsc/Yavsc.csproj b/src/Yavsc/Yavsc.csproj index fa83037c..8b9225b5 100644 --- a/src/Yavsc/Yavsc.csproj +++ b/src/Yavsc/Yavsc.csproj @@ -50,4 +50,4 @@ - \ No newline at end of file +