Jenkins流水线打包微服务构建docker镜像运行

本文详细介绍了如何在Jenkins中配置流水线脚本,实现从Gitee远程仓库拉取微服务代码,通过Maven构建并打包成Docker镜像,最终推送到Harbor私有仓库,包括设置构建参数、公共模块构建、镜像上传和远程部署的全过程。

前提:
1.已安装Harbor。
2.已安装Jenkins,已配置相关环境,如Maven、JDK等。
3.微服务项目已经推送到远程仓库(我这里是推送到了gitee)。

操作流程如下

1.新建任务
在这里插入图片描述
在这里插入图片描述

2.参数构建
点击spring-cloud-dev,接着进入配置
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时候可以看到构建参数如下
在这里插入图片描述
3.配置微服务
打开编译工具IDEA,项目结构如下,现只构建两个子服务cloud-zuul和cloud-admin
在这里插入图片描述
在项目根目录下放置Jenkinsfile文件,在子服务cloud-zuul和cloud-admin根目录下分别放置Dockerfile文件,文件内容如下:
cloud-zuul

FROM openjdk:8
ARG JAR_FILE
COPY ${
   
   JAR_FILE} cloud-zuul.jar
EXPOSE 10006
ENTRYPOINT ["java","-jar","cloud-zuul.jar"]

cloud-admin

FROM openjdk:8
ARG JAR_FILE
COPY ${
   
   JAR_FILE} cloud-admin.jar
# 挂载目录到主机
VOLUME ["/root/ghyProjectUpload/synthesiscloud"]
EXPOSE 10008
ENTRYPOINT ["java","-jar","cloud-admin.jar"]

注意:端口保持一致

Jenkinsfile

def project_url = "https://gitee.com/***/synthesis-cloud.git"
def gitlab_auth = "z***"
def tag = "latest"
def harbor_url = "192.168.*.*:9999"
def harbor_project_name = "sysnthesis-cloud-dev"
def imageName = "${project_name}:${tag}"
node {
   
   
    def mvnHome
    stage('pull') {
   
   
        checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [],
        userRemoteConfigs: [[credentialsId: "${gitlab_auth}", url: "${project_url}"]]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值