stages: - build - deploy variables: # Адрес вашего реестра. Если вы используете GitLab Container Registry, можно заменить на $CI_REGISTRY_IMAGE REGISTRY_URL: registry.miem.hse.ru IMAGE_NAME: $REGISTRY_URL/edadil/ms/model # Неймспейс Kubernetes не используется, поскольку деплой идёт через docker-compose # Добавьте переменные SSH_HOST, SSH_USER, SSH_PASSWORD, а также DEPLOY_DIR – путь к docker-compose файлу на сервере SSH_HOST: 45.133.251.217 SSH_USER: root DEPLOY_DIR: deployment # замените на актуальный путь на сервере before_script: # Загружаем kubeconfig (если он нужен для других этапов, здесь можно удалить, если не используется) - echo "$KUBECONFIG_DATA" > kubeconfig - export KUBECONFIG=$CI_PROJECT_DIR/kubeconfig build: stage: build image: docker:latest services: - docker:dind tags: - docker script: - docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" $REGISTRY_URL - docker build -t $IMAGE_NAME:$CI_COMMIT_SHORT_SHA -f deployment/Dockerfile . - docker push $IMAGE_NAME:$CI_COMMIT_SHORT_SHA - docker tag $IMAGE_NAME:$CI_COMMIT_SHORT_SHA $IMAGE_NAME:latest - docker push $IMAGE_NAME:latest only: - master deploy: stage: deploy image: alpine:latest tags: - docker before_script: - apk add --no-cache openssh-client sshpass docker-compose script: # Копируем docker-compose.yml - sshpass -p "$SSH_PASSWORD" scp -o StrictHostKeyChecking=no deployment/docker-compose.yml $SSH_USER@$SSH_HOST:/root/deployment/docker-compose.yml # Копируем ollama-entrypoint.sh - sshpass -p "$SSH_PASSWORD" scp -o StrictHostKeyChecking=no deployment/ollama-entrypoint.sh $SSH_USER@$SSH_HOST:/root/deployment/ollama-entrypoint.sh # Делаем ollama-entrypoint.sh исполняемым - sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "chmod +x /root/deployment/ollama-entrypoint.sh" # Запускаем docker-compose - sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "cd /root/deployment && docker-compose pull && docker-compose --profile full up -d" only: - master when: manual