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

news/2024/7/12 2:25:05 标签: jenkins, docker, ci/cd

先决条件

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端口即可打开部署的网页

 


http://www.niftyadmin.cn/n/241324.html

相关文章

运行Omniverse Replicator Headlessly

运行Replicator Headlessly 学习目标 本教程的目的是向您展示如何不费吹灰之力地使用 Replicator。 Headless 在这种情况下意味着计算设备没有显示器或外围设备&#xff0c;例如键盘和鼠标。 为了做到这一点&#xff0c;我们将对 Replicator 的核心功能 - “Hello World”中解…

自动化运维工具SaltStack

1、简介 Salt基于C/S架构&#xff0c;服务端叫Master&#xff0c;客户端叫Minion&#xff0c;Master与Minion之间通信是通过ZeroMQ消息队列。Master与Minion都以守护进程的方式运行&#xff0c;一直监听配置文件里面的ret_port端口(4506&#xff0c;接收Minion请求)和publish_p…

Lombok插件下载与离线安装

Lombok插件下载与离线安装 首先你既然搜要离线安装或下载&#xff0c;那么肯定也是在IDEA工具里面&#xff0c;无法搜索到&#xff0c;或者自动下载安装失败吧&#xff1f; 安装包下载地址 记得和 idea版本一样&#xff0c; 如果不知道啥版本看下面

愚蠢的往事-网络安全专题之数字证书

血泪教训史&#xff0c;我被骗去办理了数字证书。 文章目录 加密算法摘要算法数字签名数字证书血泪开篇数字证书 加密算法 相关知识点&#xff1a;对称加密算法、非对称加密算法、信息完整性验证算法。 对称加密算法&#xff1a;1.加密密钥和解密密钥相同的算法&#xff0c;…

真题详解(归并)-软件设计(五十三)

真题详解&#xff08;UML部署图&#xff09;-软件设计&#xff08;五十二)https://blog.csdn.net/ke1ying/article/details/130233656 语句覆盖<判定覆盖<条件覆盖<路径覆盖。 2、ISO/IEC 9126软件质量模型中对软件质量定义&#xff1a; 易测试性、易分析性、稳定性、…

Ant Design 常见用法与坑点总结(一)

前言 Ant Design 是蚂蚁出品的出色优秀的 React 组件库&#xff0c;相信使用 React 进行管理系统开发的小伙伴们或多或少都接触过 Ant Design。很多公司基于 React 开发的管理端系统也都是使用 Ant Design 的组件库。 因此&#xff0c;了解 Ant Design 的常见用法与坑点还是有…

tcpdump有哪些功能呢?以及如何使用呢?

tcpdump是一个命令行网络抓包工具&#xff0c;用于在 Linux/Unix 系统上捕获网络数据包。 它可以抓取传输层&#xff08;TCP、UDP&#xff09;以上的网络数据包&#xff0c;并将抓包结果以可读的方式呈现给用户。tcpdump的主要功能包括&#xff1a; 捕获网络数据包&#xff1…

1秒解决notion客户端所有问题-历史上最简单

1 前言 你是否安装了enhancer后&#xff0c;notion打不开&#xff0c;一直报错&#xff1f;你是否为实现notion客户端汉化和大纲的各种操作而各种苦恼&#xff1f;你是否不习惯使用网页的开始&#xff0c;很想有一个客户端的notion&#xff01; 全部解决&#xff01; 2 网页…