Docker 自动化部署(保姆级教程)

Docker 自动化部署

  • 1. jenkins 介绍
    • 1.1 参考链接:
    • 1.2 jenkins 概述
    • 1.3 jenkins部署项目的流程
  • 2. jenkins 安装
    • 2.1 基于docker 镜像
    • 2.2 启动 jenkins 后端服务
    • 2.3 登录 jenkins 服务后端
  • 3. jenkins自动化部署开始
    • 3.1 下载需要的插件
    • 3.2 创建任务
      • 3.2.1 描述
      • 3.2.2 配置远程仓库地址链接(从远程仓库拉代码)
      • 3.2.3 配置构建触发器
      • 3.2.4 配置全局node环境
      • 3.2.5 在项目配置中配置 构建环境
      • 3.2.6 配置 build steps (打包)
    • 3.3 系统配置
    • 3.4 构建后操作(将打包后的代码推到服务器上)
    • 3.5 docker启动项目容器
  • 4 演示自动化效果

1. jenkins 介绍

1.1 参考链接:

jenkins介绍

jenkins部署Vue项目

docker安装Jenkins

1.2 jenkins 概述

Jenkins:是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建的一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的容器中运行,也可独立运行。

1.3 jenkins部署项目的流程

开发的步骤:

  1. 开发者会将代码上传到版本库中。
  2. jenkins通过配置版本库的连接地址,获取到源代码。
  3. jenkins获取到源代码之后通过参数化构建(或者触发器)开始编译打包。
  4. jenkins通过调用maven(Ant或者Gradle)命令实现编译打包过程。
  5. 生成的war包通过ssh插件上传到远程tomcat服务器中通过shell脚本自动发布项目。

在这里插入图片描述

2. jenkins 安装

2.1 基于docker 镜像

服务:jenkins/jenkins 、 jenkins/blueocean
我们采用 docker pull jenkins/jenkins

2.2 启动 jenkins 后端服务

docker run -id -u root --name my_jenkins -p 8085:8080  -p 50000:50000 jenkins/jenkins
# -u root  root用户权限去启动系统
# -p 8085:8080  端口映射
# --name my_jenkins #容器的名字

8085 防火墙需要开启:
在这里插入图片描述

2.3 登录 jenkins 服务后端

2.3.1 访问 8085 服务进入jenkins后端:
在这里插入图片描述
2.3.2 进入容器:

docker exec -it my_jenkins bash  

示例:
在这里插入图片描述

2.3.3 在jenkins容器内部进行获取密码:

cat /var/jenkins_home/secrets/initialAdminPassword

示例:
在这里插入图片描述

将密码填入jenkins服务即可登录成功。

2.3.4 选择推荐安装的插件:

没有安装成功也没有问题,后续更新即可

在这里插入图片描述
等待:
在这里插入图片描述
2.3.5 登录 jenkins
没有账号的可以在这里创建登录
在这里插入图片描述
因为我有帐号了,就选择使用admin账号登录
这便来到了jenkins后台首页
在这里插入图片描述

3. jenkins自动化部署开始

3.1 下载需要的插件

  • Nodejs
  • Git
  • Gitee
  • Publish Over SSH
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.2 创建任务

在这里插入图片描述
在这里插入图片描述
跳转到项目配置页面

3.2.1 描述

在这里插入图片描述

3.2.2 配置远程仓库地址链接(从远程仓库拉代码)

第一个空是需要填写远程地址链接

在这里插入图片描述

第二个填写用户,如果没有用户点击下面添加用户

在这里插入图片描述
目前该项目的工作空间什么都没有:
在这里插入图片描述
我们点击立即构建:
在这里插入图片描述

3.2.3 配置构建触发器

在这里插入图片描述
gitee中配置webHooks:
在这里插入图片描述
这里填写的url是:
在这里插入图片描述
密码是:
在这里插入图片描述

3.2.4 配置全局node环境

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我选择14的node版本(16和18不建议)
在这里插入图片描述

3.2.5 在项目配置中配置 构建环境

在这里插入图片描述
在这里插入图片描述

3.2.6 配置 build steps (打包)

在这里插入图片描述
在控制台输入打包命令:
在这里插入图片描述
即可实现打包工作
在这里插入图片描述

3.3 系统配置

在这里插入图片描述
在这里插入图片描述
Publish Over SSH 在最下面
新增服务
在这里插入图片描述

参数说明:
第一个参数:名称 最好不好用中文
第二个参数:服务器公网ip
第三个参数:用户
第四个参数:打包上传目录

在高级里面添加服务器密码
在这里插入图片描述

3.4 构建后操作(将打包后的代码推到服务器上)

在这里插入图片描述
在这里插入图片描述
此时,服务器该位置已经出现了打包后的dist:
在这里插入图片描述

3.5 docker启动项目容器

docker run --name jenkinsProject -p 9001:80 -v 
/home/www/frontProject/jenkinsProject/dist:/usr/share/nginx/html -v 
/home/www/nginxConf/nginx.conf:/etc/nginx/nginx.conf -v 
/home/www/nginxConf/conf.d:/etc/nginx/conf.d --restart=always -d nginx:latest

最后成功上线
在这里插入图片描述

4 演示自动化效果

docker自动化部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/144731.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【图论C++】树的重心——教父POJ 3107(链式前向星的使用)

》》》算法竞赛 /*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 一个某双流一大学通信与信息专业大二在读 * * brief 一直在竞赛算法学习的路上* * copyright 2023.9* COPYRIGHT 原创技术笔记:转载…

Neo4j-双向关系

概述 这是GraphAware中关于双向关系的解释。 网址链接Modelling Data in Neo4j: Bidirectional Relationships | GraphAware 定向关系 Neo4j中的关系必须有一个语义化的类型和方向。 没有方向关系是模棱两可的,上面A队打败B队,如果没有方向&#xff0c…

AOP 编程

目录 ​编辑一、AOP 编程 1、AOP 概念 2、AOP 编程的开发步骤 3、切面的名词解释 二、AOP 的底层实现原理 1、核心问题 2、动态代理类的创建 (1)JDK 的动态代理创建 (2)CGlib 的动态代理 (3)总结…

支持笔记本电脑直插直充,TOWE 65W智能快充PDU超级插座

电源插排在我们的生活中是必不可少的电器配件。今天,我们日常生活中所使用的电子设备越来越多,无论是手机、平板、笔记本电脑还是各种家用电器,都需要电源来驱动。虽然相对于其他电器来说,插排结构比较简单,但现代家庭…

设计模式5、原型模式 Prototype

解释说明:使用原型实例指定待创建对象的类型,并且通过复制这个原型阿里创建型的对象 UML 结构图: 抽象原型(Prototype):规定了具体原型对象必须实现的clone()方法 具体原型(ConcretePrototype&…

【我的创作纪念日】使用pix2pixgan实现barts2020数据集的处理(完整版本)

使用pix2pixgan (pytorch)实现T1 -> T2的基本代码 使用 https://github.com/eriklindernoren/PyTorch-GAN/ 这里面的pix2pixgan代码进行实现。 进去之后我们需要重新处理数据集,并且源代码里面先训练的生成器,后训练鉴别器。 一般情况下…

计算机图像处理-均值滤波

均值滤波 线性滤波器的原始数据与滤波结果是一种算术运算,即用加减乘除等运算实现,如均值滤波器(模板内像素灰度值的平均值)、高斯滤波器(高斯加权平均值)等。由于线性滤波器是算术运算,有固定…

Android Jetpack Compose之确定重组范围并优化重组

1.概述 Compose的重组是智能的,Composable函数在进行重组时会尽可能的跳过不必要的重组,只对需要变化的UI进行重组。那Compose是如何认定UI需要变化呢?或者换句话说Compose是如何确定重组的范围呢。如果重组随意的发生,那么对UI的…

LabVIEW开发实时自动化多物镜云计算全玻片成像装置

LabVIEW开发实时自动化多物镜云计算全玻片成像装置 数字病理学领域正在迅速发展,这主要是由于计算机处理能力、数据传输速度、软件创新和云存储解决方案方面的技术进步。因此,病理科室不仅将数字成像用于图像存档等简单任务,还用于远程病理学…

一些 dp 题

CYEZ 弹珠 key:思维题,完全背包。 先每个组分一个小球。等价于 n − k n-k n−k 拆分为任意个 [ 1 , k ] [1,k] [1,k] 的数的方案数。 本质是根据面积的转换,直观解释: 完全背包即可。代码。 No Bug No Game key&#xff1…

无人直播间

失败!! 采用 ffmpeg 技术进行推流 推流代码: 【需要将rtmp替换为你的推流地址】 ffmpeg -re -stream_loop -1 -i "rain.mp4" -c copy -f flv ""推流地址获取 以哔哩哔哩为例 点击下方链接 开播设置 - 个人中心 - …

Java编程技巧:文件上传、下载、预览

目录 1、上传文件1.1、代码1.2、postman测试截图 2、下载resources目录中的模板文件2.1、项目结构2.2、代码2.3、使用场景 3、预览文件3.1、项目结构3.2、代码3.3、使用场景 1、上传文件 1.1、代码 PostMapping("/uploadFile") public String uploadFile(Multipart…

麒麟信安服务器操作系统V3.5.2重磅发布!

9月25日,麒麟信安基于openEuler 22.03 LTS SP1版本的商业发行版——麒麟信安服务器操作系统V3.5.2正式发布。 麒麟信安服务器操作系统V3定位于电力、金融、政务、能源、国防、工业等领域信息系统建设,以安全、稳定、高效为突破点,满足重要行…

试图一文彻底讲清 “精准测试”

在软件测试中,我们常常碰到两个基本问题(困难): 很难保障无漏测:我们做了大量测试,但不清楚测得怎样,对软件上线后会不会出问题,没有信心; 选择待执行的测试用例&#…

阿里云七代云服务器实例、倚天云服务器及通用算力型和经济型实例规格介绍

在目前阿里云的云服务器产品中,既有五代六代实例规格,也有七代和八代倚天云服务器,同时还有通用算力型及经济型这些刚推出不久的新品云服务器实例,其中第五代实例规格目前不在是主推的实例规格了,现在主售的实例规格是…

MySQL架构 InnoDB存储引擎

1. 什么是Mysql? 我们在开发的时候,我们都需要对业务数据进行存储,这个时候,你们就会用到MySQL、Oracal等数据库。 MySQL它是一个关系型数据库,这种关系型数据库就有Oracal、 MySQL,以及最近很火的PgSQL等。…

Springcloud实战之自研分布式id生成器

一,背景 日常开发中,我们需要对系统中的各种数据使用 ID 唯一表示,比如用户 ID 对应且仅对应一个人,商品 ID 对应且仅对应一件商品,订单 ID 对应且仅对应 一个订单。我们现实生活中也有各种 ID ,比如身…

分享78个Python源代码总有一个是你想要的

分享78个Python源代码总有一个是你想要的 源码下载链接:https://pan.baidu.com/s/1ZhXDsVuYsZpOUQIUjHU2ww?pwd8888 提取码:8888 下面是文件的名字。 12个python项目源码 Apache Superset数据探查与可视化平台v2.0.1 API Star工具箱v0.7.2 Archery…

Springcloud:二、Eureka介绍+上手(搭建EurekaServer注册中心+服务注册+服务拉取)

Eureka介绍 Eureka上手 搭建EurekaServer注册中心 在cloud-demo这个maven项目下创建eureka-server模块 引入依赖 在eureka-server模块的pom文件中新增如下代码 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artif…

安卓:解决AndroidStudio导出Unity的Apk(APP)出现2个显示图标

用AndroidStudio打开该项目 实现只保留1个app图标 AndroidManifest.xml的改法如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android" package"com.fru…