Files
Regisflow/Dockerfile
T
michaelschal 62e93f372d Simplify the application setup process within its isolated environment
Refactors the Dockerfile to streamline the build process and dependency management.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 91318273-c764-4fd4-be04-bdc12c38af32
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/6e755801-08e8-4492-805e-ac3610de5a2a.jpg
2025-07-09 20:25:22 +00:00

44 lines
1.1 KiB
Docker

# Dockerfile pour RegisFlow
FROM node:18-alpine
# Installer les dépendances système nécessaires
RUN apk add --no-cache dumb-init postgresql-client wget python3 make g++
# Créer un utilisateur non-root
RUN addgroup -g 1001 -S nodejs
RUN adduser -S regisflow -u 1001
# Créer le répertoire de l'application
WORKDIR /app
# Copier les fichiers de dépendances
COPY package*.json ./
# Installer toutes les dépendances
RUN npm ci && npm cache clean --force
# Copier le code source
COPY --chown=regisflow:nodejs . .
# Copier le script d'entrée
COPY --chown=regisflow:nodejs docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# Créer les répertoires nécessaires
RUN mkdir -p /app/backups && chown regisflow:nodejs /app/backups
# Changer vers l'utilisateur non-root
USER regisflow
# Exposer le port
EXPOSE 5000
# Variables d'environnement par défaut
ENV NODE_ENV=production
ENV PORT=5000
# Utiliser dumb-init pour gérer les signaux
ENTRYPOINT ["dumb-init", "--"]
# Démarrer l'application avec tsx pour éviter les problèmes de build
CMD ["docker-entrypoint.sh", "npx", "tsx", "server/index.ts"]