Skip to content
Snippets Groups Projects
Commit ad230f22 authored by LAMRINI Houda's avatar LAMRINI Houda
Browse files

gitlab-ci

parent b1263dce
No related branches found
No related tags found
No related merge requests found
Pipeline #47243 failed
image: docker:20.10.16 # Version récente pour éviter les bugs
image: docker:latest
services:
- name: docker:20.10.16-dind
alias: docker
command: ["--tls=false"] # Désactiver TLS pour éviter les erreurs
- docker:dind
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "" # Désactiver le TLS (source d'erreur)
DOCKER_HOST: "tcp://docker:2375"
DOCKER_TLS_CERTDIR: ""
stages:
- cleanup
- build
- test
- deploy
Cleanup Unused Docker Images:
stage: cleanup
tags:
- docker
script:
- docker image prune -f || true # Supprime les anciennes images inutilisées
before_script:
- echo "Logging into GitLab Container Registry..."
- docker login -u "$CI_REGISTRY_USER" -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
Build Docker:
build-push-image:
stage: build
tags:
- docker
before_script:
- echo $CI_JOB_TOKEN | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
script:
- docker build . --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
- echo "Building the Docker image..."
- docker build -t "$CI_REGISTRY_IMAGE:latest" .
- echo "Pushing the Docker image..."
- docker push "$CI_REGISTRY_IMAGE:latest"
Run Tests:
test-container:
stage: test
tags:
- docker
script:
# Lancer les tests ici (exemple : pytest, Jest, etc.)
- echo "Running tests..."
- docker run --rm $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME pytest
- docker run --rm "$CI_REGISTRY_IMAGE:latest" python -m unittest discover tests/
Deploy to Prod:
deploy:
stage: deploy
only:
- main # Déploiement uniquement sur la branche `main`
tags:
- docker
before_script:
- echo $CI_JOB_TOKEN | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
- main
script:
- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
- docker run -d --name my-app -p 8080:80 $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
- docker image prune -f || true # Nettoyer les images inutiles
- echo "Deploying the application..."
- docker pull "$CI_REGISTRY_IMAGE:latest"
- docker run -d -p 5000:5000 --name flask_app "$CI_REGISTRY_IMAGE:latest"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment