Files
LeDiscord/frontend/Dockerfile
EvanChal dfeaecce73
Some checks failed
Deploy to Development / build-and-deploy (push) Failing after 20s
fix+feat(everything): lot of things
2026-01-25 22:14:48 +01:00

67 lines
1.3 KiB
Docker

# Stage 1 : Build prod
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
ARG VITE_API_URL=https://api.lediscord.com
ARG VITE_APP_URL=https://lediscord.com
ARG VITE_UPLOAD_URL=https://api.lediscord.com/uploads
ENV VITE_API_URL=$VITE_API_URL
ENV VITE_APP_URL=$VITE_APP_URL
ENV VITE_UPLOAD_URL=$VITE_UPLOAD_URL
RUN npm run build
# Stage 2 : Image finale avec les deux modes
FROM node:20-alpine
RUN apk add --no-cache nginx
WORKDIR /app
# Copier les sources pour le mode dev
COPY package*.json ./
RUN npm ci
COPY . .
# Copier le build prod
COPY --from=builder /app/dist /usr/share/nginx/html
# Config nginx
RUN echo 'server { \
listen 8080; \
root /usr/share/nginx/html; \
index index.html; \
location / { \
try_files $uri $uri/ /index.html; \
} \
location /assets { \
expires 1y; \
add_header Cache-Control "public, immutable"; \
} \
}' > /etc/nginx/conf.d/default.conf
# Script d'entrée
COPY <<EOF /entrypoint.sh
#!/bin/sh
if [ "\$MODE" = "dev" ]; then
echo "🔧 Mode DEVELOPPEMENT"
exec npm run dev -- --host 0.0.0.0 --port 8080
else
echo "🚀 Mode PRODUCTION"
exec nginx -g "daemon off;"
fi
EOF
RUN chmod +x /entrypoint.sh
EXPOSE 8080
CMD ["/entrypoint.sh"]