docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)

docker 运行jenkins及vue项目与springboot项目:

1.立即构建

输入任务名称:service_blog
选择maven项目(先要在插件管理中安装maven插件)

2.配置
源码管理

选择git(先要在插件管理中安装git插件)
输入git地址、秘钥及需要打包的分支

Pre Steps

Build: pom.xml,输入maven命令clean package
Post Steps:add post-build step->选择执行shell
输入shell命令:

                #!/bin/bash

                #下面的路径都是指jenkins容器中的路径,非宿主机服务器的路径(通过该命令进入容器查看:docker exec -it {jenkins容器id} /bin/bash)
                #操作/项目路径(Dockerfile[下附配置]存放的路径)
                BASE_PATH=/var/jenkins_home/service
                # 源jar路径(jenkins利用maven打包项目的jar包的路径,其service_blog则为构建时输入的任务名称)
                SOURCE_PATH=/var/jenkins_home/workspace/service_blog/target
                #docker 镜像/容器名字 这里都命名为这个(自定义)
                SERVER_NAME=service-blog
                #jar名字(jenkins利用maven打包项目的jar包名称)
                JAR_NAME=personal_blog-0.0.1-SNAPSHOT
                #容器id
                CID=$(docker ps -a | grep "$SERVER_NAME" | awk '{print $1}')
                #镜像id
                IID=$(docker images -a | grep "$SERVER_NAME" | awk '{print $3}')

                DATE=`date +%Y%m%d%H%M`

                # 最新构建代码 移动到项目环境
                function transfer(){
                    echo "最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/$JAR_NAME.jar 迁移至 $BASE_PATH ...."
                        cp $SOURCE_PATH/$JAR_NAME.jar $BASE_PATH/
                    echo "迁移完成"
                }

                # 备份
                function backup(){
                    if [ -f "$BASE_PATH/$JAR_NAME.jar" ]; then
                        echo "$JAR_NAME.jar 备份..."
                            cp $BASE_PATH/$JAR_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar
                        echo "备份 $JAR_NAME.jar 完成"
                    else
                        echo "$BASE_PATH/$SERVER_NAME.jar不存在,跳过备份"
                    fi
                }

                # 构建docker镜像
                function build(){
                    if [ -n "$IID" ]; then
                        echo "存在$SERVER_NAME镜像,IID=$IID,删除后重新构建"
                        docker rmi $IID
                        echo "删除完毕,开始构建镜像"
                        cd $BASE_PATH
                        docker build -t $SERVER_NAME .
                    else
                        echo "不存在$SERVER_NAME镜像,开始构建镜像"
                            cd $BASE_PATH
                        docker build -t $SERVER_NAME .
                    fi
                }

                # 运行docker容器
                function run(){
                    echo "执行backup ..."
                    backup
                    echo "执行transfer ..."
                    transfer
                    echo "执行build ..."
                    build
                    echo "docker run ..."
                    if [ -n "$CID" ]; then
                        echo "存在$SERVER_NAME容器,CID=$CID,停止后 删除,重新创建启动"
                            docker stop $CID
                            docker rm  $CID
                            docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p 8089:8089 $SERVER_NAME
                        echo "$SERVER_NAME容器重启完成"
                    else
                        echo "不存在$SERVER_NAME容器,docker run创建容器..."
                            docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p 8089:8089 $SERVER_NAME
                        echo "$SERVER_NAME容器创建完成"
                    fi
                }

                #入口
                run   

springboot项目的Dockerfile配置:

            #基于openjdk:8
            FROM openjdk:8

            ADD  personal_blog-0.0.1-SNAPSHOT.jar personal_blog.jar

            # 指定当前操作目录
            WORKDIR /var/jenkins_home/service

            ADD  personal_blog-0.0.1-SNAPSHOT.jar personal_blog.jar
            RUN bash -c 'touch /personal_blog.jar'
            ENTRYPOINT ["java","-Djava.security.egd-file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/personal_blog.jar"]

保存配置

3.立即构建

查看控制台,看看是否有错误,最后是否success
查看springboot应用的日志,看看是否启动成功,是否有错误:docker logs -f --tail=100 {容器id}

原文地址:https://www.cnblogs.com/lantuanqing/p/12073326.html

时间: 2024-08-13 23:12:25

docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)的相关文章

Linux上GitLab+Jenkins实现Vue、Spring Cloud项目的自动部署

一. 相关插件安装 1.安装GitLab相关插件 2.NodeJS插件 3.Maven 插件 4.手动安装插件 网络或者其他原因,可能导致插件安装失败. 可以采用手动安装的方式. 手动下载jenkins插件:jenkins插件下载地址:http://mirror.xmission.com/jenkins/plugins/ ,一般下载下来后缀为hpi,如下载下来是zip的,记得把后缀修改为hpi 打开jenkins,点击 系统管理-->插件管理-->高级,选择本地文件,点击提交. 二.Jenki

docker 运行jenkins及vue项目与springboot项目(四.docker运行nginx)

docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四.docker运行nginx 五.jenkins打包springboot服务且在docker中运行 准备配置 创建 /home/jenkins/docker/nginx/nginx.conf 文件及/home/docker/nginx/log文件夹 其nginx.conf 文件为在原nginx.co

Docker+Jenkins实现spring-boot项目持续集成

环境Jenkins安装,准备一台server,安装略,百度一下.Docker安装,准备一台server,安装略,百度一下. Jenkins上配置 新建一Maven的Job项目. Jenkins配置-源码 Jenkins配置-构建触发器 Jenkins配置-构建环境构建前,从集中存放配置文件的GitLab中拉取最新配置文件,包含Dockerfile,后面开始构建会引用最新文件. cd /data/httpd/release/b2b-configuration;git pull sleep 3; y

linux服务器中Jenkins集成git、Gradle持续构建Springboot项目

Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动构建需要经过如下步骤:从git仓库下载代码.使用Gradle进行构建.使用SSH推送到另一台linux服务器.项目作为linux服务启动.本章将逐条仔细讲解. 一.获得一台linux服务器 要在linux下搞持续构建,首先你得先有一台linux服务器,作为小白,手头的机器肯定都是windows的,搞

Docker化你的SpringBoot项目

容器和微服务可谓是一对好朋(ji)友(you),因为微服务架构下的业务服务通常都基于SpringBoot进行开发,上线部署服务的时候通过容器来进行部署,能够简化部署的过程,然后使用一些容器管理工具管理容器,例如k8s.rancher等.这样才能方便我们进行扩展.重建以及销毁服务等操作,最重要的是使用Docker部署项目会比传统的部署方式更简单,基本就几条命令的事,所以学会使用Docker部署SpringBoot项目显得尤为重要. 本文默认读者已经掌握docker的相关操作,如果你对docker相

用docker部署springboot项目

创建springboot项目,编写一个简单的hello world controller 下面是效果图. 下面是pom.xml 文件. 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.

Docker快速上手之部署SpringBoot项目

Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分发.部署.运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”. Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的.将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了

上传springboot项目到远程docker

昨天在云服务器上配置了docker环境,正好手边有个springboot的项目.今天研究一下如何将一个springboot项目打包到docker容器,然后通过运行一个镜像来启动项目. 1.打开docker允许远程访问docker的功能 选“E”继续 添加红框内容 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 配置完成后保存退出,然后重启docker systemctl daemon-reload service docker resta

IDEA创建springboot项目部署到远程Docker

安装IDEA插件安装Docker integration插件,如果没安装,按照下图指引方式安装插件. 配置Docker打开小扳手(setting)找到docker,输入虚拟机ip,不出意外会连接成功的. 新建springboot项目用idea向导新建一个springboot项目web-demo,添加测试类HelloController 编写Dockerfile文件 在项目根目录下新增Dockerfile文件,如果Dockerfile放到了子目录,会造成ADD和COPY指令无法访问打包文件的问题