jenkins持续化部署2-构建流水线项目
1.安装插件安装代码托管插件,我用的自己gitee,就安装gitee插件2.新建项目选择流水线构建配置钩子触发器生成钩子webhook密码,这个密码要用在git托管仓库处用来生成钩子函数去git仓库处生成钩子函数,url地址在上图的jenkins配中有注意:弄完可以点击测试是否可以发送post测试请求,响应码200就成功,不成功则是可能用了内网的ip,识别不了,可以用ngrox穿透 内网ip端口来
·
1.安装插件
- 安装代码托管插件,我用的自己gitee,就安装gitee插件
- 还需要安装Rancher的插件用于后续的Rancher自动拉取镜像进行重新创建容器部署
手动下载插件:Redeploy Rancher2.x Workload ,地址:使用Redeploy Rancher2.x Workload插件时发现的问题解决.
下载之后手动上传插件。
2.新建项目
-
选择流水线构建
-
配置钩子触发器
-
生成钩子webhook密码,这个密码要用在git托管仓库处用来生成钩子函数
-
去git仓库处生成钩子函数,url地址在上图的jenkins配中有
注意:弄完可以点击测试是否可以发送post测试请求,响应码200就成功,不成功则是可能用了内网的ip,识别不了,可以用ngrox穿透 内网ip端口来代替。 -
最后生成pipeline语句
pipeline{
agent any
stages{
stage("更新代码"){
steps{
echo "pull code"
git credentialsId: '**************', url: 'https://******/devops.git'
}
}
stage('代码打包') {
steps {
echo "--------------代码打包-----------------"
sh 'mvn clean package -DskipTests'
}
}
stage('构建镜像') {
steps {
echo "--------------构建镜像-----------------"
sh 'docker build -t aopdemo .'
}
}
stage('上传到私服') {
steps {
echo "--------------上传到私服-----------------"
sh 'docker tag aopdemo 10.10.0.17:5000/aopdemo'
sh 'docker push 10.10.0.17:5000/aopdemo'
}
}
stage('清理虚悬镜像') {
steps {
echo "--------------清理虚悬镜像-----------------"
sh 'docker rmi $(docker images -f "dangling=true" -q)'
}
}
}
}
- git credentialsId---------》可在流水线语法生成处生成,添加的是gitee的账号密码。
- 构建镜像------》在项目文件夹下生成一个Dockfile文件来生成镜像
# 镜像出处 WangLin
FROM openjdk:8-jre-alpine
USER root
#中文乱码问题
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
# 时间
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 将本地项目 jar 包拷贝到 Docker 容器中的位置
COPY target/*.jar /app.jar
# 执行批处理文件
ENTRYPOINT ["java", "-jar", "-Djava.security.egd=file:/dev/./urandom", "app.jar"]
- 然后保存,点击构建测试是否成功。流水线中用到了上传镜像到私服registry以便rancher进行pull以及创建容器进行构建,私服registry需要docker创建。
- 私服创建要让访问的ip受信任:
vim /etc/docker/daemon.json
# 加下面的配置
"insecure-registries":["10.10.0.17:5000"]
最后再执行后再创建rancher的执行步骤,添加rancher的秘钥:勾选总是拉取镜像,这样就可以在执行后不用在rancher手动进行拉取镜像并启动新的容器。
更多推荐
已为社区贡献6条内容
所有评论(0)