-
Шаронов Егор Алексеевич authored
This GitLab CI configuration is valid.
Learn more
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