iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >使用Jenkins+docker打包部署后端服务的实现
  • 284
分享到

使用Jenkins+docker打包部署后端服务的实现

Jenkins docker打包部署 2022-11-13 14:11:18 284人浏览 薄情痞子
摘要

目录安装jenkins配置1、配置工具2、配置Publish over ssh3、编译构建4、推送jar包构建镜像老板给了两台服务器,一台windows用来打包,一台linux用于构

老板给了两台服务器,一台windows用来打包,一台linux用于构建镜像 + 部署,于是有了这篇笔记

安装Jenkins

下载地址:https://www.jenkins.io/download/

找到对应版本下载安装就行,装好之后在浏览器输入localhost:port(port是你安装时设置的端口),看到如下页面:

就说明装好了,然后用安装的时候设置好的账号密码登录

配置

1、配置工具

进入页面后首先是添加Maven的配置文件:

maven配置文件

然后配置工具:

jdk

git

maven

配置好之后应用保存

2、配置Publish over SSH

这一步是为了把文件推送到远程服务器,不需要的可以跳过

首先去插件商店安装publish over ssh

进入之后搜索publish over ssh,然后安装

安装完成后进入系统配置,拉到最下面,就可以看到publish over ssh的配置了

配置完之后同样应用保存

创建流水线打包

配置自动触发的条件,不勾就是手动触发咯

然后就是最重要的流水线语法了

可以点击这里帮助生成

下拉框那里,如果是linux命令选择sh:xxx
window命令选择bat:xxx
git命令选择git:xxx
publishSSH选择SSH Publishers:XXX

以下是我流水线示例:

pipeline {
    agent any 
    stages {
        stage('拉取代码') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'xxx', url: 'Http://XXX.git']]])
                echo '拉取代码成功'
            }
        }
        stage('编译构建') {
            steps {
                //输出当前jenkins的工作目录
                echo "${env.WORKSPACE}" 
                //仅打包file-service模块
                bat 'mvn clean package -pl file-service -am'
                echo '编译成功'
            }
        }
        stage('推送jar包') {
            steps {
                sshPublisher(publishers: 
                    [sshPublisherDesc(
                        configName: 'ssh253', 
                        transfers: [sshTransfer(
                            cleanRemote: false, 
                            excludes: '', 
                            execCommand: '''cd local/file
                                        ./start.sh''', 
                            execTimeout: 120000, 
                            flatten: false, 
                            makeEmptyDirs: false, 
                            nodefaultExcludes: false, 
                            patternSeparator: '[, ]+', 
                            remoteDirectory: 'file', 
                            remoteDirectorySDF: false, 
                            removePrefix: 'file-service\\target\\', 
                            sourceFiles: 'file-service\\target\\file-service-1.0-SNAPSHOT.jar'
                        )], 
                        usePromotionTimestamp: false, 
                        useWorkspaceInPromotion: false, 
                        verbose: false
                    )])
            }
        }
    }
}

1、stage表示流水线每一步的名字,执行之后是这个样子:

2、拉取代码
credentialsId:你配置的凭证id
配置凭证

查看凭证

url:你的git项目地址

3、编译构建

使用maven进行打包的命令而已

4、推送jar包

我是用流水线语法生成器生成的

Source files: 要发送的源文件位置,表示当前工作空间下的file-service\target\file-service-1.0-SNAPSHOT.jar包,\是windows上的路径写法,如果要发送整个文件,则使用/* *
Remove prefix: 去除的前缀,表示只要文件不要目录,如果不去除,那么文件复制到服务器上后会生成file-service\target\目录
Remote directory: 远程机的路径,这个路径是以系统配置publish over ssh的Remote directory为当前文件夹的相对路径,开头不写/
Exec command文件推送完之后的命令

以上,流水线就做好了,点击“build Now”就可以打包并且推送到服务器对应位置上了

构建镜像

现在jar包已经有了,并且到了它该在的位置,需要来构建镜像并启动
安装docker
使用命令:curl -fsSL https://get.Docker.com | bash -s docker --mirror Aliyun
或者:curl -sSL https://get.daocloud.io/docker | sh

编写dockerfile
docker需要使用dockerfile来构建镜像,先新建一个dockerfile文件

#jdk基础镜像
FROM anapsix/alpine-java:8_server-jre_unlimited

#作者
MaiNTAINER CarinaYang

#执行命令,主要用来安装相关的软件
#RUN 

#添加文件
ADD admin-service-1.0-SNAPSHOT.jar /usr/local
#使用外面的配置文件
ADD admin-service.yml /usr/local

#挂载目录到容器
#VOLUME ["/data"]

#开放端口
EXPOSE 9000

#启动时执行的命令
CMD ["/bin/bash"]

ENV JAVA_OPTS="\
-Xms2048m -Xmx2048m -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M"

#启动时执行的命令
ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar -Dspring.config.location=/usr/local/admin-service.yml /usr/local/admin-service-1.0-SNAPSHOT.jar

构建镜像
这里我是直接使用脚本来写的,创建脚本start.sh

#!/bin/bash
# 定义应用组名
group_name='SpringCloud'
# 定义应用名称
app_name='admin-service'
# 定义应用版本
app_version='1.0-SNAPSHOT'
echo '----停止消息服务 ----'
docker stop ${app_name}
echo '----删除实例----'
docker rm ${app_name}
echo '----删除旧镜像----'
docker rmi ${group_name}/${app_name}:${app_version}
echo '----打包镜像----'
# 打包编译docker镜像
docker build -t ${group_name}/${app_name}:${app_version} .
echo '----启动镜像----'
docker run -itd -p 9000:9000 --restart=always  --name ${app_name}  ${group_name}/${app_name}:${app_version}
echo '----启动完成----'

docker run 里面的 --restart=always是为了开机自启动设置的,因为服务器每天晚上要关机,不需要可以不写
因为没有部署镜像仓库就直接启动镜像了,如果有的话要推到镜像仓库上去

启动脚本

./start.sh

当然,可以直接加到jenkins流水线“推送jar包”步骤的execCommand中,这样Jenkins推送jar包过来后就会自动启动脚本了

到此这篇关于使用Jenkins+docker打包部署后端服务的实现的文章就介绍到这了,更多相关Jenkins docker打包部署内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用Jenkins+docker打包部署后端服务的实现

本文链接: https://www.lsjlt.com/news/171569.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Jenkins+docker打包部署后端服务的实现
    目录安装Jenkins配置1、配置工具2、配置Publish over SSH3、编译构建4、推送jar包构建镜像老板给了两台服务器,一台windows用来打包,一台linux用于构...
    99+
    2022-11-13
    Jenkins docker打包部署
  • Docker+Nginx打包部署前后端分离步骤实现
    目录问题描述项目打包前端项目打包修改vue.config.js文件router配置中添加base属性打包前端项目后端项目打包将前端和后端的打包文件上传到服务器nginx反向代理配置后...
    99+
    2023-01-08
    Docker Nginx前后端分离 nginx前后端分离
  • Docker+Nginx打包部署前后端分离怎么实现
    这篇文章主要介绍“Docker+Nginx打包部署前后端分离怎么实现”,在日常操作中,相信很多人在Docker+Nginx打包部署前后端分离怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker+...
    99+
    2023-07-04
  • docker部署安装jenkins的实现步骤
    首先,我们需要一台安装了docker的服务器。(这个我已经在我的小主机上安装了) 第一步,把镜像给拉下来 docker pull jenkins/jenkins:lts 第二...
    99+
    2024-04-02
  • 基于Docker、Nginx和Jenkins实现前端自动化部署
    目录前期准备部署目标Dcoker环境的搭建连接云服务器安装Docker环境Docker安装Docker ComposeDocker安装Nginx和Jenkins服务安装Nginx和J...
    99+
    2024-04-02
  • 打包前后端项目并部署至服务器
    1、打包前端项目 打包命令:npm run build 执行完命令后,会生成一个名为 dist 的文件夹,这个就是打包好的前端项目。 2、打包后端项目 2.1、执行 maven 的 clean ,删除项目编译创建的 target 文...
    99+
    2023-08-18
    linux
  • GitLab+Jenkins+Maven+Tomcat 实现自动集成、打包、部署
    目录一、安装 Tomcat 服务二、在 Jenkins 上安装 Maven1.安装 Maven2.创建 Jenkins 任务3.验证一、安装 Tomcat 服务 1.安装 JDK J...
    99+
    2024-04-02
  • jenkins+gitlab+nginx部署前端应用实现
    目录相关依赖安装 docker docker安装jenkinsdocker 安装 nginx 小结配置 1. 安装 gitlab 相关插件 2. 首页->系统管理->系统...
    99+
    2024-04-02
  • 后端代码打包后怎么部署到云服务器上
    将后端代码打包后可以通过以下步骤部署到云服务器上:1. 登录到云服务器:使用SSH工具登录到云服务器,可以通过终端或者远程桌面连接到...
    99+
    2023-09-27
    云服务器
  • Docker搭建Jenkins并自动化打包部署项目的步骤
    Jenkins的安装及配置 Docker环境下的安装 下载Jenkins的Docker镜像: docker pull jenkins/jenkins:lts 在Docker容器中运行...
    99+
    2024-04-02
  • 使用Docker部署打包发布springboot项目
    目录前言第一:环境第二:开始描述从搞项目到docker发布:第四:各种错误教训集合。前言 从安装docker到多种方式打包发布,编译,镜像,容器等问题,遇到种种问题,终于不负所望,一...
    99+
    2024-04-02
  • Jenkins打包微服务构建Docker镜像运行的实现
    目录环境准备开始1.GitLab远程仓库创建微服务项目 2.IDEA代码推送到Gitlab 3.Jenkins创建流水线项目 4.参数化构建 5.拉取远程仓库的构建脚本 6.编写远程...
    99+
    2024-04-02
  • 基于Docker、Nginx和Jenkins如何实现前端自动化部署
    这篇文章给大家分享的是有关基于Docker、Nginx和Jenkins如何实现前端自动化部署的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前期准备基于CentOS 7系统云服务器一台。基于Vue-CLI的项目部署...
    99+
    2023-06-20
  • Docker部署前后端分离项目的实现示例
    目录一、环境准备二、运行镜像解决问题Redis安装Nginx安装三、打包项目四、部署一、环境准备 服务器 阿里云服务器 1核+2GB即可 软件 本次部署采用的是 docker,因此软...
    99+
    2024-04-02
  • 如何实现Docker部署前后端分离项目
    这篇文章给大家介绍如何实现Docker部署前后端分离项目,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、环境准备服务器阿里云服务器 1核+2GB即可软件本次部署采用的是 docker,因此软件环境都在 docker ...
    99+
    2023-06-21
  • Docker如何安装jenkins实现微服务多模块打包
    这篇文章主要介绍“Docker如何安装jenkins实现微服务多模块打包”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Docker如何安装jenkins实现微服务多模块打包”文章能帮助大家解决问题。...
    99+
    2023-07-02
  • Jenkins一键打包部署SpringBoot应用的方法步骤
    目录Jenkins简介Jenkins的安装及配置Docker环境下的安装Jenkins的配置角色权限管理打包部署SpringBoot应用在Jenkins中创建执行任务任何简单操作的背...
    99+
    2024-04-02
  • 如何使用Docker部署打包发布springboot项目
    这篇文章将为大家详细讲解有关如何使用Docker部署打包发布springboot项目,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言从安装docker到多种方式打包发布,编译,镜像,容器等问题,遇到种种...
    99+
    2023-06-29
  • 使用docker、docker-compose部署微服务
    使用docker、docker-compose部署微服务 一、使用docker部署1、准备2、上传jar包3、编写dockerfile文件3、构建镜像和容器 二、使用docker-compose部署1、准备服务的jar包和doc...
    99+
    2023-08-30
    docker 微服务 容器
  • jenkins+gitlab+nginx部署前端应用实现的示例分析
    这篇文章将为大家详细讲解有关jenkins+gitlab+nginx部署前端应用实现的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。相关依赖安装docker由于国内安装太慢,所以可以使用 http...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作