基于Jenkins实现Docker应用的持续集成与部署

2023-11-19

先决条件

1. 服务器部署安装有docker

在docker应用开发中最常见的就是开发Dockerfile文件,可以使用代码仓库来管理它。

而在企业私有开发环境中是无法访问公有代码仓库(如Github)的。这时可以搭建私有代码仓库。

部署安装svn私有仓库

  1. 安装软件

sudo yum install -y subversion mod_dav_svn

  1. 创建svn仓库

sudo mkdir -p /srv/svn/repos sudo svnadmin create /srv/svn/repos/myrepo sudo chown -R apache.apache /srv/svn/repos

  1. 配置 Apache Web 服务器

在 /etc/httpd/conf.d 目录下创建一个名为 svn.conf 的新文件,并添加以下内容:

cat >/etc/httpd/conf.d/svn.conf <<EOF <Location /svn> DAV svn SVNParentPath /srv/svn/repos AuthType Basic AuthName "SVN Repository" AuthUserFile /etc/httpd/svn-auth Require valid-user </Location> EOF

  1. 创建用户名和密码文件

sudo htpasswd -cm /etc/httpd/svn-auth myuser

此命令将创建一个新的用户名和密码文件 /etc/httpd/svn-auth,并添加名为 myuser 的新用户。当您运行此命令时,系统将提示您为新用户设置密码。请注意,

-c 标志用于创建新的密码文件。如果您需要向现有的密码文件中添加用户,请删除 -c 标志。

  1. 启动apache服务器

sudo systemctl start httpd sudo systemctl enable httpd

  1. 访问SVN仓库

使用浏览器访问

或者使用svn客户端工具访问

svn checkout http://<your-server-ip>/svn/myrepo 这将从 SVN 服务器中检出 myrepo 仓库到当前目录

开发Dockerfile文件

  1. 准备Dockerfile文件

cat > Dockerfile <<EOF FROM nginx RUN echo '<h1>Demo Version 1</h1>' >/usr/share/nginx/html/index.html EOF

  1. 将文件提交到SVN代码仓库服务器

[root@master ~]# svn checkout http://127.0.0.1:1180/svn/myrepo . Checked out revision 0. [root@master ~]# svn add Dockerfile A Dockerfile [root@master ~]# svn commit -m "update Dockerfile" Adding Dockerfile Transmitting file data . Committed revision 1. [root@master ~]# svn checkout http://127.0.0.1:1180/svn/myrepo A myrepo/Dockerfile Checked out revision 1. [root@master ~]#

浏览器访问确认是否提交成功

重要说明

要将文件提交到Subversion(SVN)仓库中,您需要执行以下步骤:

  1. 检查您是否已经在本地创建了SVN仓库工作副本。如果没有,请使用svn checkout命令从远程仓库创建一个工作副本。

svn checkout [repository_url] [local_directory]

其中,[repository_url]是SVN仓库的URL地址,[local_directory]是本地目录路径。

  1. 在本地工作副本中创建或编辑要提交的文件。
  1. 使用svn add命令将新创建的文件添加到版本控制中。例如,要将名为file.txt的文件添加到SVN仓库中,请执行以下命令:

svn add file.txt

  1. 使用svn commit命令将更改提交到SVN仓库。请注意,每次提交更改时,都需要在命令行中提供提交注释。例如,要提交file.txt文件的更改并添加提交注释,请执行以下命令:

svn commit -m "Update file.txt"

完成后,您的更改将被提交到SVN仓库中,并且其他人可以更新他们的工作副本以查看您的更改

集成Jenkins和Docker

  1. 在jenkins上部署安装SVN插件

  1. 创建新项目

  1. 勾选subversion单选按钮,表示代码由SVN进行管理

  1. 在Repository URL文本框中输入SVN的代码仓库地址
  1. 单击【Credentials】旁边的【添加】按钮,然后利用SVN用户信息添加一个新的Jenkins账户信息

  1. 在构建选项卡中,单击【增加构建步骤】,并选择执行SHELL。然后输入如下命令

docker build -t myjenkinsdemo . docker run -d -p 1778:80 myjenkinsdemo

  1. 单击保存按钮,并单击【立即构建】

构建的日志输出信息

  1. 项目构建完成之后,打开浏览器访问节点的1778端口即可打开部署的网页

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Jenkins实现Docker应用的持续集成与部署 的相关文章

随机推荐

  • Spring Boot 快速入门、开发环境热部署

    SpringBoot快速上手 准备工作 我们将学习如何快速的创建一个Spring Boot应用 并且实现一个简单的Http请求处理 通过这个例子对Spring Boot有一个初步的了解 并体验其结构简单 开发快速的特性 我的环境准备 jav
  • Sping之自动注入-1

    最近终于能静下心来 一步步的学习Java Web开发 在学习的过程中 遇到太多的问题 一开始好些问题真是不知道怎么解决 在这里要非常感谢 Sping In Action 一书的作者 感谢他能写出此书 让我受益匪浅 您辛苦了 本着 相互学习
  • linux查看已安装的软件

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 因为linux安装软件的方式比较多 所以没有一个通用的办法能查到某些软件是否安装
  • docker run之后 docker ps 不显示运行中的容器

    docker run 启动mysql以后 生成的对应容器直接exited 1 问题 今天在部署项目过程中 用docker run指令启动容器返回了容器id 但是用docker ps指令却不显示刚才启动的容器 问题查找 由于docker ps
  • L298N 小车应用(附代码)

    L298N L298N是目前智能小车应用很广泛的价格也比较便宜的电机驱动 用来驱动直流电机 L298N 输出A 输出B 分别接两个直流电机 电机两根线随便接 如果发现两电机方向是反着的 就调换下接线就ok了 12V供电 这个是外部电源为驱动
  • kubernetes集群实战——暴露service供外部访问的4种方法(NodePort、LoadBalancer、ExternalName和分配公有IP)

    1 service介绍 Service可以看作是一组提供相同服务的Pod对外的访问接口 借助Service 应用可以方便地实现服务发现和负载均衡 service默认只支持4层负载均衡能力 没有7层功能 可以通过Ingress实现 servi
  • android studio3.1调试

    快捷键 ctrl alt left或者ctrl alt right 回退 前进 双击快捷键 shift 全局搜索 快捷键 shift F9 开始调试 快捷键 F6 单步执行程序 快捷键 F5 单步执行程序 遇到方法时进入 快捷键 F8 调到
  • 机器学习算法——Kmeans

    1 k mean算法的原理 1 选取K个点做为初始聚集的簇心 2 分别计算每个样本点到K个簇核心的距离 这里的距离一般取欧氏距离或余弦距离 找到离该点最近的簇核心 将它归属到对应的簇 3 所有点都归属到簇之后 M个点就分为了K个簇 之后重新
  • element 时间日期选择器限制选择范围为7天

    template 部分
  • 编写递归算法,计算二叉树叶子结点的数目。

    编写递归算法 计算二叉树叶子结点的数目 编写递归算法 计算二叉树叶子结点的数目 include stdio h 包含 getchar scanf printf include malloc h malloc 动态申请空间 函数 二叉树 结点
  • 服务器的地址信息,服务器地址信息

    服务器地址信息 内容精选 换一换 可以一次添加一台服务器 也可以一次添加同一网段连续IP的多台服务器 进入任务中心可以查看状态信息 如果状态为成功 说明服务器已添加成功 如果要自定义裸金属服务器的DNS服务器信息 需要将裸金属服务器网络设置
  • 《算法导论》笔记(15) 最小生成树 部分习题

    习题23 1 11 给定图G和一棵最小生成树T 假设减少了位于T之外的某条边的权重 因为T内的边 是连接所有结点的权重最小的 那么首先将T外的减少权重的边 u v 加入T 然后在u v中寻找所有的路径 去掉路径中权重最大的边 习题23 2
  • 5、H3C交换机ACL配置

    创建 IPv4 高级 ACL 并进入 IPv4 高级 ACL 视图 switch acl number acl number name acl name 注 IPv4 高级 ACL 的编号范围为3000 3999 创建规则 switch a
  • 无法打开计算机开始菜单,开始菜单,教您开始菜单无法打开

    win10系统开始菜单不能使用该如何是好呢 最近有位用户反映在使用win10系统的过程当中 发现开始菜单没莫名其妙的就出现了打不开的情况 这该怎么办呢 不要着急 小编这就来将处理开始菜单打不开这个问题的办法来分享给你们 我们在使用电脑的过程
  • 使用Docker Compose搭建Redis主从集群

    一 本次环境使用到了docker docker compose redis 二 我们搭建的主从集群结构如图 共包含三个节点 一个主节点 两个从节点 这里我们会在同一台虚拟机中开启3个redis实例 模拟主从集群 信息如下 IP PORT 角
  • 超越nnFormer!UNETR++:高效准确的3D医学图像分割

    UNETR Delving into Efficient and Accurate 3D Medical Image Segmentation 论文链接 https arxiv org abs 2212 04497 代码链接 https g
  • Spring Boot 配置文件这样加密,才足够安全!

    1 前景 在使用Springboot时 通常很多信息都是在application yml中直接明文配置的 比如数据库链接信息 redis链接信息等等 但是这样是不安全的 所以需要对敏感数据进行加密 这样防止密码泄露 Jasypt这个库为我们
  • Go开发命令行程序指南

    近期在Twitter上看到一个名为 Command Line Interface Guidelines 的站点 1 这个站点汇聚了帮助大家编写出更好命令行程序的哲学与指南 这份指南基于传统的Unix编程原则 2 又结合现代的情况进行了 与时
  • 封装的几种形式

    你说的时cpu的封装吗 供你参考 集成电路芯片的封装形式 自从美国Intel公司1971年设计制造出4位微处a理器芯片以来 在20多年时间内 CPU从Intel4004 80286 80386 80486发展到Pentium和Pentium
  • 基于Jenkins实现Docker应用的持续集成与部署

    先决条件 1 服务器部署安装有docker 在docker应用开发中最常见的就是开发Dockerfile文件 可以使用代码仓库来管理它 而在企业私有开发环境中是无法访问公有代码仓库 如Github 的 这时可以搭建私有代码仓库 部署安装sv