SpringBoot+Docker+Git+Jenkins реализует простую непрерывную интеграцию и непрерывное развертывание.

HTTPS CDN редкоземельный Jenkins

После столь долгой тяжелой работы, если у вас есть немного таланта, должны быть некоторые признаки успеха.

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ece49e85b~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ece49e85b~tplv-t2oaga2asx-image.image

предисловие

Эта статья поможет вам использоватьJenkinsразвертыватьSpringBootпредметы, при использованииDockerиGitреализовать простойНепрерывная интеграцияи непрерывное развертывание. (адрес проекта:sso-merryyou)

Блок-схема выглядит следующим образом:

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ecec13118~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ecec13118~tplv-t2oaga2asx-image.image

  1. pushкод дляGithubкурокWebHook. (Из-за проблем с сетью в этой статье используетсяgitee)
  2. JenkinsВытащите код из репозитория
  3. mavemПостроить проект
  4. статический анализ кода
  5. модульный тест
  6. buildзеркало
  7. pushЗеркало на зеркальный склад (используемый зеркальный склад - зеркальный склад
  8. Служба обновления

Установка Дженкинса

скачать Дженкинс

отjenkins.io/download/скачать соответствующийjenkins

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ece224c97~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ece224c97~tplv-t2oaga2asx-image.image

пароль инициализации

Локальный доступ:http://localhost:8080введите пароль

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ecf073885~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ecf073885~tplv-t2oaga2asx-image.image

Выберите плагин

Войдите в пользовательский интерфейс плагина и выберите второй (потому что мы используемPipelines)

проверить сPipelinesсвязанные плагины

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ecf7c5cfa~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ecf7c5cfa~tplv-t2oaga2asx-image.image

Дождитесь завершения установки плагина

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ece9cde31~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ece9cde31~tplv-t2oaga2asx-image.image

Настроить имя пользователя и пароль

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f1531b92e~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f1531b92e~tplv-t2oaga2asx-image.image

Глобальная конфигурация

Управление системой - «Глобальный конфигурация инструмента настроить Git, JDK и Maven

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f2c5d17a6~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f2c5d17a6~tplv-t2oaga2asx-image.image

Конфигурация безопасности

Управление системой — «Конфигурация глобальной безопасности»

  • Установите флажок Разрешить анонимный доступ для чтения.
  • Отменить предотвращение подделки межсайтовых запросов

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f3bc5548d~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f3bc5548d~tplv-t2oaga2asx-image.image

Новое задание

Новая задача - "Сборная линия

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f811f33a1~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f811f33a1~tplv-t2oaga2asx-image.image

скрипт сборки

Проверьте удаленную сборку триггера (адрес триггера WebHooks), заполните простуюPipeline script

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f3d2e4f8f~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f3d2e4f8f~tplv-t2oaga2asx-image.image

#!groovy
pipeline{
	agent any

	stages {

		stage('test'){
			steps {
				echo "hello world"
			
			}
		}			
	}
}

тестовый скрипт

Построить сейчас

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f820b3e6a~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f820b3e6a~tplv-t2oaga2asx-image.image

консольный вывод

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f8a7f8f45~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f8a7f8f45~tplv-t2oaga2asx-image.image

gitee интегрирует WebHooks

Добавить SSH открытый ключ

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f9ae83e02~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08f9ae83e02~tplv-t2oaga2asx-image.image

Настроить веб-кауки

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08fc5f47587~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08fc5f47587~tplv-t2oaga2asx-image.image

использоватьnatappРеализовать проникновение в интранет

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ff16a83a9~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ff16a83a9~tplv-t2oaga2asx-image.image

Изменить скрипт

ИсправлятьPipeline script

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08fcfa320d8~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08fcfa320d8~tplv-t2oaga2asx-image.image

#!groovy
pipeline{
	agent any
	//定义仓库地址
	environment {
		REPOSITORY="https://gitee.com/merryyou/sso-merryyou.git"
	}

	stages {

		stage('获取代码'){
			steps {
				echo "start fetch code from git:${REPOSITORY}"
				//清空当前目录
				deleteDir()
				//拉去代码	
				git "${REPOSITORY}"
			}
		}

		stage('代码静态检查'){
			steps {
				//伪代码检查
				echo "start code check"
			}
		}		

		stage('编译+单元测试'){
			steps {
				echo "start compile"
				//切换目录
				dir('sso-client1') {
					//重新打包
					bat 'mvn -Dmaven.test.skip=true -U clean install'
				}
			}
		}

		stage('构建镜像'){
			steps {
				echo "start build image"
				dir('sso-client1') {
					//build镜像
					bat 'docker build -t hub.c.163.com/longfeizheng/sso-client1:1.0 .'
					//登录163云仓库
					bat 'docker login -u longfei_zheng@163.com -p password hub.c.163.com'
					//推送镜像到163仓库
					bat 'docker push hub.c.163.com/longfeizheng/sso-client1:1.0'
				}
			}
		}

		stage('启动服务'){
			steps {
				echo "start sso-merryyou"
				//重启服务
				bat 'docker-compose up -d --build'
			}
		}				

	}
}

Несколько основных концепций Pipeline:

  • Стадия: Стадия, конвейер можно разделить на несколько стадий, каждая стадия представляет собой группу операций. Обратите внимание, что этап — это концепция логической группировки, которая может охватывать несколько узлов.
  • Узел: узел, узел — это узел Jenkins, или мастер, или агент, который является конкретной средой выполнения для выполнения шага.
  • Шаг: Шаг — это самая основная единица работы, начиная от создания каталога и заканчивая созданием образа Docker, предоставляемого различными плагинами Jenkins.

Дополнительные ссылки на синтаксис конвейера:Подробное объяснение синтаксиса конвейера

контрольная работа

docker-compose up -dзапустить службу

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ff98750c0~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed08ff98750c0~tplv-t2oaga2asx-image.image

доступhttp://sso-taobao:8083/client1Авторизоваться

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed0901a263fde~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed0901a263fde~tplv-t2oaga2asx-image.image

Эффект от изменения содержимого следующий:

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed0901be331ad~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed0901be331ad~tplv-t2oaga2asx-image.image

Больше визуализаций

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed0904b7afdd6~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed0904b7afdd6~tplv-t2oaga2asx-image.image

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed090724c6893~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/22/162ed090724c6893~tplv-t2oaga2asx-image.image

загрузка кода

рекомендуемая статья

  1. Java для создания серии блокчейнов
  2. Серия анализов исходного кода Spring Security
  3. Серия Spring Data Jpa
  4. Все о деревьях в структурах данных (Java Edition)

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/17/162d1b4f7821b3ec~tplv-t2oaga2asx-image.image
https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/4/17/162d1b4f7821b3ec~tplv-t2oaga2asx-image.image

🙂 🙂 🙂 Подписывайтесь на апплет WeChatкурс Java-архитектораСкучно по дороге на работу и обратно? Вы все еще читаете романы и новости? Не знаете, как улучшить свои навыки? Да ладно, вот нужные вам статьи по архитектуре Java, инженеры Java читают 1.5w+, чего вы ждете?