image: docker:24.0.5 services: - name: docker:24.0.5-dind command: ["--insecure-registry=registry.leclercqvincent.com"] stages: - build - deploy variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" IMAGE_TAG: $CI_REGISTRY_IMAGE:latest before_script: - docker info - echo $CI_REGISTRY - echo $IMAGE_TAG - echo $CI_REGISTRY_USER build-image: stage: build script: - echo "Connexion au registre GitLab" - echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u $CI_REGISTRY_USER --password-stdin - echo "Build de l'image" - docker build -t $IMAGE_TAG . - echo "Pousser l'image vers le registre GitLab" - docker push $IMAGE_TAG only: - main deploy: stage: deploy script: - echo "Déploiement de l'image pour $CI_PROJECT_NAME..." # Écrire manuellement le contenu de la variable dans un fichier temporaire - echo "$SSH_PRIVATE_KEY" > private_key.pem - chmod 600 private_key.pem # Vérification du fichier créé - ls -l private_key.pem - cat private_key.pem # Connexion SSH en utilisant le fichier temporaire - ssh -i private_key.pem -o StrictHostKeyChecking=no $DEVOPS_USER@$DEV_SERVER_IP "sudo docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY" - ssh -i private_key.pem -o StrictHostKeyChecking=no $DEVOPS_USER@$DEV_SERVER_IP "sudo docker pull $IMAGE_TAG" - ssh -i private_key.pem -o StrictHostKeyChecking=no $DEVOPS_USER@$DEV_SERVER_IP "sudo docker container rm -f $CI_PROJECT_NAME || true" - ssh -i private_key.pem -o StrictHostKeyChecking=no $DEVOPS_USER@$DEV_SERVER_IP "sudo docker run -d -p $HOST_PORT:$CONTAINER_PORT --name $CI_PROJECT_NAME $IMAGE_TAG" # Nettoyage du fichier temporaire - rm -f private_key.pem only: - main