Jenkins 流水线任务之maven打包及 docker镜像创建私库上传

目标:
使用 Jenkins 打包 maven 项目,构建 Docker 镜像及上传到私有 docker 镜像库

## 新建流水线任务

参考 Jenkins自动化部署之nodeJs项目 里的任务创建

Jenkinsfile

这个 Jenkinsfile 需要搭配下面的 Dockerfile才能做 node 节点的任务

pipeline {
    agent {
        docker {
            image 'maven:3-alpine'
            args '-v /home/data/jenkins-test/mvnRepo:/root/.m2'
        }
    }
    stages {
        stage('Build') {
            steps {
                sh 'mvn -B -DskipTests clean package --settings /root/.m2/settings.xml'
            }
        }
    }
}


node {
    checkout scm
    docker.withRegistry('http://192.168.1.150:8001') {

		//这里表示使用 target 目录下的 Dockerfile 来创建容器
        def customImage = docker.build("yibo/yibo-os-system:latest", "./target")

        /* Push the container to the custom Registry */
        customImage.push()
    }
}

这里我们可以看到 docker args 里,挂卷了 ./root/.m2 这个目录,主要是避免重复构建会重新下载依赖,注意这个目录是你宿主机的,不是 jenkins 容器里的目录;

这里再看 Build 里的参数 有 --settings /root/.m2/settings.xml'
这个主要是用来修改 maven 镜像,使用 阿里云来加速,所以我们在第一次构建前需要去创建出 上面挂载的目录,然后创建一个
settings.xml 文件,这个操作在 jenkins 容器创建后只需要做一次即可,后面构建会很快;

文件内容如下,较简略,因为我们只作打包~

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <mirrors>
	    <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
  </mirrors>
</settings>

Dockerfile

仅作参考

# java镜像
FROM daocloud.io/java:8

# 将本地文件夹挂载到当前容器
# 创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录。
VOLUME ["/tmp"]
# 运行时要挂载卷 /home/data/oa-system-files:/opt/oa-system-files
#VOLUME ["/opt/oa-system-files", "/home/data/oa-system-files"]

# 拷贝文件到容器
COPY *.jar /opt/app.jar

# 打开服务端口
EXPOSE 8080 8080

# 解决容器时间和宿主主机时间不一致问题
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

# 配置环境变量 todo jvm优化参数可以设置这里
ENV JAVA_OPTS='-Xmx8192m -Xms8192m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8077' APP_OPTS=''

# 配置容器启动后执行的命令
ENTRYPOINT java $JAVA_OPTS  -server  -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.region=CN -Djava.security.egd=file:/dev/./urandom -jar /opt/app.jar $APP_OPTS

创建容器

构建成功后即创建了 docker 镜像,可使用 docker来创建我们的容器

如果使用了 rancher ,构建完到 rancher 里升级服务更方便,有时间写一下这方面的

docker run --name test  -p 8081:8080-d yibo/yibo-os-system:latest

docker run --name test  -p 8081:8080-d http://192.168.1.150:8001/yibo/yibo-os-system:latest

说明

写的比较简单,不懂可以问我~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值