码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-12-24 18:38:02      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:lan   命名   spring   home   back   jenkins   vue   pos   秘钥   

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}

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

标签:lan   命名   spring   home   back   jenkins   vue   pos   秘钥   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!