docker+jenkins+nginx实现自动化部署

155 阅读4分钟

研究背景

docker是基于操作系统层级的虚拟化技术,将软件及其依赖项打包为容器,提供了一种轻量级且可移植的方式来部署和管理应用程序。简单来说,docker容器可以抹除不同操作系统和库版本的差异,给应用程序提供一个隔离且一致的运行环境,docker镜像可以轻松移植到另一台机器,无需重新配置或者安装依赖项,使得开发、测试、生产环境之间轻松部署项目。同时docker和持续集成、部署工具可以很好的集成在一起,对项目进行自动化构建、测试部署,提高效率和可靠性。

docker+jenkins+nginx实现自动化部署

本文使用centos8版本

  1. yum安装gcc
yum -y install gcc
  1. 安装软件包和国内镜像仓库
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 下载阿里云仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  1. 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io

一直y enter 5. 启动docker

sudo systemctl start docker
  1. 检查docker是否安装 出现下图则成功

image.png 7. 配置镜像加速源

vim /etc/docker/daemon.json

云服务的话要根据自己购买的服务器获取自己服务器对应的镜像加速地址,这样可以比公开的镜像地址速度更快。

通用步骤

登录云服务厂商(阿里云、腾讯云、华为云)然后控制台找到镜像服务获取自己独有的镜像加速地址。修改镜像加速文件的加速地址:我用的菊花云console.huaweicloud.com/swr/?region…

image.png

配置中添加

{
    "registry-mirrors": [
        "https://b47b1334cc994a1e9fe916e963f503eb.mirror.swr.myhuaweicloud.com"
    ]
}
  1. 重启docker
sudo systemctl restart docker

确认配置

执行**docker info**,当Registry Mirrors字段的地址为加速器的地址时,说明加速器已经配置成功。
  1. 安装git
yum install git // 安装git
git --version //验证git安装
  1. 安装jdk 10.1 删除原有jdk 10.2 通过wget下载jdk1.8并解压
cd /home   //进入home文件夹 
mkdir jdk //创建jdk文件夹 
cd jdk     //进入jdk文件夹

10.3 进入jdk文件通过wget下载jdk1.8

wget \ --no-check-certificate \ --no-cookies \ --header \ "Cookie: oraclelicense=accept-securebackup-cookie" \ http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

10.4 解压

tar xvf jdk-8u131-linux-x64.tar.gz

10.5 配置环境变量

vim /etc/profile

键盘输入i在文件unset 他pathsname后面插入以下内容:

export JAVA_HOME=/home/jdk/jdk1.8.0_131 export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ export PATH=$PATH:$JAVA_HOME/bin //语法解释 //export JAVA_HOME=你自己解压的jdk文件夹路径

命令行输入source /etc/profile使配置文件生效 10.5 检查jdk是否安装成功

java -version

成功安装 image.png

安装Jenkins

1. docker拉取镜像

docker pull jenkins/jenkins:2.426.2-lts

如果镜像有问题 可看这篇文章改镜像 juejin.cn/post/738537… 注:需要指定版本号,不然拉取的镜像版本是比较老的版本

2. 创建挂载目录

创建一个挂载目录,用于存放jenkins的数据 cf5c8530e4fd47938de18ccde724270c

//创建目录 
mkdir -p /usr/docker/jenkins_data ​ 
//授权权限 
chmod 777 /home/docker/jenkins_home

3. 启动jenkins

docker run -d -p 8082:8080 -p 50000:50000 -v /usr/docker/jenkins_data:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock --restart=on-failure -u 0 --name myjenkins jenkins/jenkins:2.426.2-lts

4.验证Jenkins容器是否启动成功

docker ps

成功运行

image.png

5.获取密码

docker logs myjenkins

image.png

6.登录web页面

使用ip:8082,8082就是我们主机映射到容器8080的端口,如果你使用的是其他端口,那么需要换成其他端口。同时需要在云服务器安全组里开通端口(添加8082端口)

7.安装推荐插件

选择安装推荐插件 额外的按需安装 Locale(中文插件)

Gitlab Plugin (拉取 gitlab 中的源代码)

Maven Integration(maven构建工具)

Publish Over SSH(远程推送工具)

Role-based Authorization Strategy(权限管理)

Deploy to container(自动化部署工程所需要插件,部署到容器插件)

git parameter(用户参数化构建过程里添加git类型参数)