Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
20 changes: 20 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Node modules locaux (très volumineux)
node_modules

# Dossier Git (inutiles pour l'image)
.git
.gitignore

# Logs
*.log

# Build local (si tu veux le reconstruire dans Docker, sinon à laisser)
build
dist

# Configs Docker que tu ne veux pas copier
docker-compose.yml

# En général, fichiers système ou IDE
.DS_Store
*.env
34 changes: 34 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Étape 1: Build de l'application React
FROM node:18-alpine AS build

# Définir le registre npm
RUN npm config set registry https://registry.npmjs.org/

WORKDIR /app

# Copier les fichiers de dépendances
COPY package*.json ./

# Installer les dépendances avec retry
RUN npm install --legacy-peer-deps \
--fetch-retries=5 \
--fetch-timeout=120000

# Copier tout le code source
COPY . .

# Build l'application React
RUN npm run build

# Étape 2: Serveur web
FROM nginx:alpine

# Copier les fichiers buildés de React vers Nginx
COPY --from=build /app/build /usr/share/nginx/html

# Copier une configuration Nginx personnalisée (optionnel)
# COPY nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
86 changes: 86 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
pipeline {
agent any

environment {
IMAGE = "rebaeisafa/react-front"
TAG = "${BUILD_NUMBER}"
// Activer BuildKit
DOCKER_BUILDKIT = "1"
}

stages {
stage('Checkout') {
steps {
checkout scm
}
}

stage('Docker Build') {
steps {
script {
// Activer BuildKit explicitement
withEnv(['DOCKER_BUILDKIT=1']) {
bat "docker build --no-cache -t ${IMAGE}:${TAG} ."
}
}
}
}

stage('Test Container') {
steps {
script {
// Arrêter le conteneur s'il existe déjà
bat 'docker stop react-test-container || true'
bat 'docker rm react-test-container || true'

// Lancer le conteneur pour test
bat "docker run -d --name react-test-container -p 8080:80 ${IMAGE}:${TAG}"

// Attendre un peu pour que le conteneur démarre
sleep 10

// Tester si le conteneur répond
bat 'curl -f http://localhost:8080 || echo "Container test failed"'
}
}
}

stage('Push to Docker Hub') {
when {
expression { env.BRANCH_NAME == 'main' }
}
steps {
script {
withCredentials([usernamePassword(
credentialsId: 'docker-hub-creds',
usernameVariable: 'DOCKER_USER',
passwordVariable: 'DOCKER_PASS'
)]) {
bat "docker login -u ${DOCKER_USER} -p ${DOCKER_PASS}"
bat "docker push ${IMAGE}:${TAG}"
bat "docker tag ${IMAGE}:${TAG} ${IMAGE}:latest"
bat "docker push ${IMAGE}:latest"
}
}
}
}
}

post {
always {
// Nettoyage
bat 'docker stop react-test-container || true'
bat 'docker rm react-test-container || true'
script {
// Supprimer l'image seulement si le build a réussi
bat "docker rmi ${IMAGE}:${TAG} || true"
}
}
success {
echo 'Build successful!'
}
failure {
echo 'Build failed!'
}
}
}
12 changes: 0 additions & 12 deletions node_modules/.bin/escodegen

This file was deleted.

17 changes: 0 additions & 17 deletions node_modules/.bin/escodegen.cmd

This file was deleted.

28 changes: 0 additions & 28 deletions node_modules/.bin/escodegen.ps1

This file was deleted.

12 changes: 0 additions & 12 deletions node_modules/.bin/esgenerate

This file was deleted.

17 changes: 0 additions & 17 deletions node_modules/.bin/esgenerate.cmd

This file was deleted.

28 changes: 0 additions & 28 deletions node_modules/.bin/esgenerate.ps1

This file was deleted.

12 changes: 0 additions & 12 deletions node_modules/.bin/he

This file was deleted.

17 changes: 0 additions & 17 deletions node_modules/.bin/he.cmd

This file was deleted.

28 changes: 0 additions & 28 deletions node_modules/.bin/he.ps1

This file was deleted.

12 changes: 0 additions & 12 deletions node_modules/.bin/html-minifier-terser

This file was deleted.

17 changes: 0 additions & 17 deletions node_modules/.bin/html-minifier-terser.cmd

This file was deleted.

28 changes: 0 additions & 28 deletions node_modules/.bin/html-minifier-terser.ps1

This file was deleted.

12 changes: 0 additions & 12 deletions node_modules/.bin/miller-rabin

This file was deleted.

Loading