fix/little-updates (#1)

Reviewed-on: #1
Co-authored-by: sandre <perso@sebastienandre.com>
Co-committed-by: sandre <perso@sebastienandre.com>
This commit was merged in pull request #1.
This commit is contained in:
2026-01-12 14:25:49 +00:00
committed by sandre
parent 715832d43f
commit ce9d7d89ce
25 changed files with 3745 additions and 3230 deletions

View File

@@ -1,31 +1,44 @@
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:7.0.14-bookworm-slim-amd64 AS base
EXPOSE 80
RUN apt-get -y update
RUN apt-get -y install nginx
RUN mkdir -p /app/Front /app/API
COPY Front/skydivelogs-app/dist /app/Front
COPY Back/dist /app/API
RUN rm -f /app/startup.sh
COPY startup.sh /app
RUN chmod 755 /app/startup.sh
RUN update-rc.d nginx defaults
COPY nginx.conf /etc/nginx/sites-available/default
# CMD ["service" "nginx" "start;"]
# RUN service nginx restart
VOLUME /app/API/Data
VOLUME /app/Front/config
ENV ASPNETCORE_URLS http://+:5001
# WORKDIR /app/API
# ENTRYPOINT ["dotnet", "skydiveLogs-api.dll"]
ENTRYPOINT ["sh", "/app/startup.sh"]
# CMD ["sh", "/app/startup.sh"]
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
# Use the official Microsoft ASP.NET Core image to build the backend
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-backend
WORKDIR "/src/backend"
COPY Back/ .
RUN dotnet restore "skydiveLogs-api/skydiveLogs-api.csproj"
RUN dotnet publish "skydiveLogs-api/skydiveLogs-api.csproj" -c Release -o /app/publish
# Use the official node image to build the Angular app
FROM node:20-alpine AS build-frontend
WORKDIR /app
COPY ["Front/skydivelogs-app/package.json", "Front/skydivelogs-app/package-lock.json*", "./"]
RUN npm install
COPY --exclude=Front/skydivelogs-app/node_modules/* Front/skydivelogs-app/ .
RUN npm run build
# Use a .NET runtime image to serve both the backend and frontend
FROM mcr.microsoft.com/dotnet/aspnet:8.0.16-bookworm-slim-amd64 AS final
WORKDIR /app
# Install nginx
RUN apt-get update && apt-get install -y nginx curl && rm -rf /var/lib/apt/lists/*
# Copy custom nginx configuration
COPY nginx.conf /etc/nginx/sites-available/default
RUN rm -rf /usr/share/nginx/html/*
# Copy frontend dist folder to nginx html directory
COPY --from=build-frontend /app/dist /usr/share/nginx/html
# Copy backend from the correct build stage
COPY --from=build-backend /app/publish /app
# Expose port 80 for the application
EXPOSE 80
ENV ASPNETCORE_URLS http://+:5001
VOLUME /app/Data
VOLUME /usr/share/nginx/html/config
# Start nginx and the .NET Core app
CMD ["sh", "-c", "dotnet /app/skydiveLogs-api.dll & nginx -g 'daemon off;'"]