32 lines
1.2 KiB
Docker
32 lines
1.2 KiB
Docker
FROM node:22-bookworm-slim AS frontend
|
|
WORKDIR /build/web
|
|
COPY web/package*.json ./
|
|
RUN npm ci --no-audit --no-fund
|
|
COPY web/ ./
|
|
RUN npm run build
|
|
|
|
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS backend
|
|
WORKDIR /build
|
|
COPY Directory.Build.props ./
|
|
COPY src/ ./src/
|
|
RUN dotnet publish src/GuestOps.Api/GuestOps.Api.csproj -c Release -o /publish/api
|
|
RUN dotnet publish src/GuestOps.Worker/GuestOps.Worker.csproj -c Release -o /publish/worker
|
|
|
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS api
|
|
WORKDIR /app
|
|
RUN mkdir -p /var/lib/guestops/keys && chown -R app:app /var/lib/guestops && chmod 700 /var/lib/guestops/keys
|
|
COPY --from=backend /publish/api ./
|
|
COPY --from=frontend /build/web/dist ./wwwroot/
|
|
ENV ASPNETCORE_URLS=http://+:8080 ASPNETCORE_ENVIRONMENT=Production Keys__Path=/var/lib/guestops/keys
|
|
USER app
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["dotnet", "GuestOps.Api.dll"]
|
|
|
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS worker
|
|
WORKDIR /app
|
|
RUN mkdir -p /var/lib/guestops/keys && chown -R app:app /var/lib/guestops && chmod 700 /var/lib/guestops/keys
|
|
COPY --from=backend /publish/worker ./
|
|
ENV DOTNET_ENVIRONMENT=Production Keys__Path=/var/lib/guestops/keys
|
|
USER app
|
|
ENTRYPOINT ["dotnet", "GuestOps.Worker.dll"]
|