标签:this 日志 dev srp mvn build 基本 otn 获取
目录
据说流行的微服务和docker一起,更配哦!接下来,使用简单spring-boot项目演示docker的集成化部署的案例,在看过微笑的博客觉得不过瘾,自己动手,下面的方案与Devops的方式比较接近;希望搭建理解这种思路。
push
到git服务器
触发器
收到通知maven的docker插件
)Jenkins将镜像推到Docker Hub
借鉴图片
Github路径:spring-boot_docker_demo
说明:这里使用com.spotify的docker-maven-plugin的插件;用法参阅代码注释。
wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz -O jdk-8-linux-x64.tar.gz
tar -zxvf jdk-8-linux-x64.tar.gz
mv jdk-8-linux-x64.tar.gz /usr/local
export JAVA_HOME=/usr/local/jdk1.8.0_181/
export PATH=$PATH:$JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_181/
export JRE_HOME=$JAVA_HOME/jre #tomcat需要
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile #刷新环境变量
2.1.3.2.3 Linux下Manven安装
wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
tar -zxvf apache-maven-3.5.0-bin.tar.gz
mv apache-maven-3.5.4 /usr/local/maven/apache-maven-3.5.4
export MAVEN_HOME=/usr/local/maven/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin:$PATH #注意这里添加$MAVEN_HOME/bin
source /etc/profile #刷新环境变量
Jenkins安装有三种方式
docker run -u root --rm -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
在官网下载,放入Tomcat的目录中即可;打war,大家肯定十分熟悉的操作。
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
vi /etc/sysconfig/jenkins
可避免避免和
Tomcat
端口重复的问题
service jenkins start
基本按照推荐来
说明这里其实
git
非必须,之前的插件安装中安装了
语法请自行查阅资料,这里使用groovy的语法
#!groovy
pipeline{
agent any
environment {
REPOSITORY="https://gitee.com/will-we/spring-boot_docker_demo.git"
}
tools {
maven ‘m3‘
jdk ‘java8‘
}
stages {
stage(‘获取代码‘){
steps {
echo "start fetch code from git:${REPOSITORY}"
//清空当前目录
deleteDir()
//拉去代码
git "${REPOSITORY}"
}
}
stage(‘代码静态检查‘){
steps {
//伪代码检查
echo "start code check"
}
}
stage(‘编译+单元测试‘){
steps {
echo "start compile"
//切换目录
sh ‘mvn -Dmaven.test.skip=true -U clean install‘
}
}
stage(‘构建镜像‘){
steps {
echo "start build image"
//build镜像
sh ‘mvn clean package docker:build‘
}
}
}
}
# 最好添加--name参数
docker run --name= springboot/spring-boot_docker_demo -p 8081:8080 -t srping-demo
解决方案:
自己试着摸着石头过河,只能借助搜索引擎了;如下是解决的流程:
1) 安装Pipeline Maven Integration插件
2) 检查环境变量
上面安装了插件后依旧不好使,继续找原因吧,Maven not found in Jenkins【StackOverflow】有着这个题问题:原因如下:
The reason is that Jenkins is installed and run as a ?system user‘ service. This means the process can‘t see the ENV variables and PATH of your user (user level). Setting up maven in PATH and ENV variables on system level makes the trick.
大体意思是:jekins的无法读取系统的环境变量;于是分别查看了大致的服务器和jekins的变量。
Jenkins 服务器/bin/bash
3) Jenkins导入java和maven的权限
还记得之前配置Jdk和maven的“全局工具设置”,注意:这里设置也是依旧不能直接读取,需要如下方式引入;“m3”是配置时名称,“java8”也是配置名称。
tools {
maven ‘m3‘
jdk ‘java8‘
}
#方式一:参看端口8080信息
netstat -lnp | grep 8080
#方式二:参看端口8080信息
lsof -i :808
#杀死进程
kill -9 pid号
我们使用了一个简单的
spring-boot
项目部署到远程服务器的操作流程,从而实现了推送代码到Git远程仓库,使用jekins的集成化构建docker实现,自动化部署方式。
演示spring-boot的简单部署方式,其实该项目的还有很多地方优化,例如:
doker push
docker的仓库、使用Jenkins
的触发器git hook
等;以及后期;spring-boot的多模块、以及docker compose
的使用等。由于篇幅的原因可能放在了后面的文章。
参考资料
================================================================================
================================================================================
标签:this 日志 dev srp mvn build 基本 otn 获取
原文地址:https://www.cnblogs.com/weir110/p/9746453.html