diff --git a/TeachingRecordSystem/Dockerfile b/TeachingRecordSystem/Dockerfile index 4ea377d22a..1525361950 100644 --- a/TeachingRecordSystem/Dockerfile +++ b/TeachingRecordSystem/Dockerfile @@ -1,18 +1,27 @@ -# syntax=docker/dockerfile:1 -FROM mcr.microsoft.com/dotnet/aspnet:10.0-alpine3.22 +FROM mcr.microsoft.com/dotnet/sdk:10.0-alpine3.23@sha256:732cd42c6f659814c9804ad7b05c7f761e83ef8379c5b2fdc3af673353caff73 AS build +WORKDIR /source + +COPY . ./ +RUN dotnet tool restore +RUN dotnet restore +RUN dotnet publish --no-restore --configuration Release + +FROM mcr.microsoft.com/dotnet/aspnet:10.0-alpine3.23@sha256:1201dde897ab436b7c6b386f6dbd4f9a3ca0245f9c5a8aac8f8bcdccb4c7d484 ARG GIT_SHA +WORKDIR /Apps +COPY --from=build /source/src/TeachingRecordSystem.Api/bin/Release/net10.0/publish/ ./Api/ +COPY --from=build /source/src/TeachingRecordSystem.Cli/bin/Release/net10.0/publish/ ./TrsCli/ +COPY --from=build /source/src/TeachingRecordSystem.SupportUi/bin/Release/net10.0/publish/ ./SupportUi/ +COPY --from=build /source/src/TeachingRecordSystem.Worker/bin/Release/net10.0/publish/ ./Worker/ +COPY --from=build /source/src/TeachingRecordSystem.AuthorizeAccess/bin/Release/net10.0/publish/ ./AuthorizeAccess/ +COPY --from=build /source/db.sh . + +RUN chmod +x ./db.sh + ENV SENTRY_RELEASE=${GIT_SHA} ENV GIT_SHA=${GIT_SHA} ENV ASPNETCORE_HTTP_PORTS=3000 -COPY src/TeachingRecordSystem.Api/bin/Release/net10.0/publish/ Apps/Api/ -COPY src/TeachingRecordSystem.Cli/bin/Release/net10.0/publish/ Apps/TrsCli/ -COPY src/TeachingRecordSystem.SupportUi/bin/Release/net10.0/publish/ Apps/SupportUi/ -COPY src/TeachingRecordSystem.Worker/bin/Release/net10.0/publish/ Apps/Worker/ -COPY src/TeachingRecordSystem.AuthorizeAccess/bin/Release/net10.0/publish/ Apps/AuthorizeAccess/ -COPY db.sh Apps/db.sh -WORKDIR /Apps - -RUN chmod +x /Apps/db.sh +ENV PATH="${PATH}:/Apps/TrsCli" # Install Culture prerequisities RUN apk add --no-cache \ @@ -42,5 +51,3 @@ RUN apk add --allow-untrusted msodbcsql18_18.0.1.1-1_amd64.apk && \ RUN addgroup -S appgroup -g 20001 && adduser -S appuser -G appgroup -u 10001 USER 10001 - -ENV PATH="${PATH}:/Apps/TrsCli" diff --git a/justfile b/justfile index 2801ec0912..3f69ca71e2 100644 --- a/justfile +++ b/justfile @@ -90,8 +90,7 @@ watch-worker: # Build the Docker image [working-directory: 'TeachingRecordSystem'] -docker-build *ARGS: restore - @dotnet publish -c Release --no-restore +docker-build *ARGS: @docker build . {{ARGS}} # Set a configuration entry in user secrets for running the apps