Sobes.tech
Назад к вопросам
Senior
5

Как технически происходит процесс от пуша в ветку до деплоя образа на стенд?

Компании, где спрашивали
Octo

Ответ от нейросети

sobes.tech AI

После пуша в ветку обычно срабатывает CI/CD пайплайн, который автоматизирует процесс сборки и деплоя. Технически это происходит так:

  1. Триггер пайплайна: Система CI (например, Jenkins, GitLab CI, GitHub Actions) отслеживает пуш в определённую ветку.
  2. Сборка проекта: Запускается сборка Java-приложения, включая компиляцию, запуск тестов и статический анализ.
  3. Создание Docker-образа: После успешной сборки создаётся Docker-образ с приложением, который тегируется (например, по номеру коммита или версии).
  4. Публикация образа: Образ пушится в Docker Registry (Docker Hub, Nexus, Artifactory).
  5. Деплой на стенд: Система деплоя (например, Kubernetes, Ansible, Helm) подтягивает новый образ и обновляет сервис на стенде.

Пример упрощённого Jenkinsfile:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh './gradlew build'
            }
        }
        stage('Docker Build & Push') {
            steps {
                script {
                    def image = "myapp:${env.GIT_COMMIT}"
                    sh "docker build -t ${image} ."
                    sh "docker push ${image}"
                }
            }
        }
        stage('Deploy') {
            steps {
                sh 'kubectl set image deployment/myapp myapp=myapp:${env.GIT_COMMIT} -n staging'
            }
        }
    }
}