jenkins+docker+maven+nodejs+nginx前后分离自动打包部署

1.docker下载安装教程

a.先常看服务器是否有docker相关依赖并删除

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

b.更新yum中的yum-utils,主要是更新yum-config-manager该命令

sudo yum install -y yum-utils

c.添加镜像源,这里我添加的是docker官方的镜像源,还有阿里其他镜像源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

d.安装dockers服务

$ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

e.启动docker命令sudo systemctl start docker

f.查看docker 状态命令systemctl status docker,显示启动中即可安装镜像

2.安装dockers镜像

a.下载Jenkins镜像,docker pull jenkins/jenkins:2.346.3(无版本要求,也可按该版本安装2.346.3)

b.下载nginx镜像:docker pull nginx:1.18.0

c.下载mysql镜像:docker pull mysql:8.0.19

d.下载rides镜像:docker pull redis:6.0.8

3.Jenkins环境搭建与配置

a.搭建jenkins前先配置jdk,maven环境,先创建两个目录

mkdir /usr/java  

mkdir /usr/local/maven

去官网下载jdk8压缩包和maven压缩包,maven版本3以内皆可,当前版本是3.8.6

JDK官网下载地址: JDK 8 for ARM - Download

maven下载地址:Maven – Download Apache Maven

解压jdk和maven压缩包

 tar -zxvf jdk-8u361-linux-x64.tar.gz

tar -zxvf apache-maven-3.9.0-bin.tar.gz

b.配置环境变量

  1. # 配置环境变量

  2. vi /etc/profile

  3. MAVEN_HOME=/usr/local/maven/apache-maven-3.9.0

  4. PATH=$MAVEN_HOME/bin:$PAT

  5. JAVA_HOME=/usr/local/java/jdk1.8.0_361

  6. PATH=$JAVA_HOME/bin:$PATH

       

c.启动jenkins

docker run -dit --name myjenkins --privileged=true -p 8989:8080 -v /etc/profile:/etc/profile -v /var/jenkins_home/:/var/jenkins_home -v /usr/java/jdk1.8.0_381:/usr/java/jdk1.8.0_381 -v /usr/local/apache-maven-3.8.1:/usr/local/apache-maven-3.8.1 jenkins/jenkins:2.346.3

参数解释:

docker run : 启动容器命令

-dit: d后台运行,it终端交互

--name:容器的名称

--privileged=true:以特殊全下进入终端,默认为false

-p:容器端口:宿主机端口

-v /etc/profile:/etc/profile: 挂载环境变量配置文件,挂载后宿主机配置文件改动,容器内部配置文件也改动

-v /var/jenkins_home/:/var/jenkins_home  挂载jenkins安装文件,jenkins相关配置信息或构建项目都在里面,所以要把jenkins_home设置成最高权限,chmod 777 -R jenkins_home

-v /usr/java/jdk1.8.0_381:/usr/java/jdk1.8.0_381 挂载jdk文件,jenkins自带jdk11用来下载jenkins插件或相关依赖,jdk8用来构建项目后面会教如何配置

-v /usr/local/apache-maven-3.8.1:/usr/local/apache-maven-3.8.1  挂载maven文件,maven里/usr/local/maven/conf中的setting文件要配置镜像源

最后jenkins/jenkins:2.346.3 为容器镜像

通过docker ps 查看容器是否启动成功,通过ip+端口访问jenkins

docker exec -it  jenkins容器id  /bin.bash

cat   /var/jenkins_home/secrets/initialAdminPassword获取初试密码

 把密码输入jenkins首页,成功后安装推荐插件

 创建管理员用户

 

进入系统设置-插件管理安装 gitee,nodejs,jdk parameter

 d.进入系统管理-系统配置,配置gitee

选择类型token令牌,输入token令牌其他的不用管点击应用保存

进入系统设置,选择全局设置,添加JDK

配置maven3.8

 配置nodejs,这里不用去宿主机上安装配置,直接在jenkins上配置

 创建一个maven构建项目(打包后端jar包)

这个方法就解决了jdk11,版本不一致的问题,构建项目是jdk8,在jenkins上下载插件基于jdk11

  配置gitee,认证方式有很多看自己选择

 在build配置要解析的文件和要打包的命令

 打包好jar包后,在同级目录下创建一个Dockerfile文件

 文件内容大致如下图

 把jar包构建成一个docker镜像,注意最后有个点

docker build -t cat:1.0 .

启动后端项目镜像

docker  run -d --name cat -p 8085:8085 cat:1.0

查看是否启动成功,docker ps,通过IP+端口能够访问,代表成功

4.部署前端项目

a.创建nginx工作目录

#需要一个conf文件存放目录,和html文件目录,及日志存放目录
mkdir -p /data/applications/nginx/conf
mkdir -p /data/applications/nginx/html
mkdir -p /data/logs

b.启动nginx容器,如果这个镜像本机中没有,会自动下载镜,我这下载是的1.18版本

docker run --name nginx -p 80:80 -d nginx:1.18.0

c.复制容器中配置文件目录到本机中,然后删除该容器

# 复制配置
docker cp nginx:/etc/nginx/nginx.conf /data/applications/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /data/applications/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /data/applications/nginx/
 
#先用 [docker ps – a] 命令 找到对应容器ID
#才可以删除容器
docker rm -f [容器ID]

d.启动新的nginx容器

docker run -d \
-p 80:80 \
-p 443:443 \
--name nginx \
--restart=always \
--network-alias nginx \
-e TZ="Asia/Shanghai" \
-v /data/applications/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/applications/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/logs/nginx:/var/log/nginx \
-v /data/applications/nginx/html:/usr/share/nginx/html \
-v /data/applications/nginx/cert:/etc/nginx/cert \
nginx:1.18.0

再一次提醒firewalld防火墙是否关闭,或者端口是否开启,以及服务器的安全组是否配置!

命令说明:

–privileged=true # 容器内被赋予root权限

-v /data/applications/nginx/html:/usr/share/nginx/html # 挂载的静态文件目录

-v /data/applications/nginx/nginx.conf:/etc/nginx/nginx.conf # 挂载的nginx配置文件目录

-v /data/applications/nginx/logs:/var/log/nginx #挂载nginx日志文件

-v /data/applications/nginx/cert: /etc/nginx/cert # ssl证书挂载目录


e.查看容器后,访问服务器ip地址

# 查看nginx容器是否启动成功
docker ps -a

看见首页代表布置成功

 在jenkins上创建前端项目

配置gitee

 添加构建环境

执行打包命令

 打包好后会生成一个dist文件,dist文件放在nginx下html目录下即可

然后根据自身情况配置端口域名,或者证书

 然后重启docker restart 容器id重启nginx,然后通过域名或者ip即可访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins是一个开源的自动部署工具,它可以帮助我们实现持续集成和自动部署。而Docker是一种虚拟化技术,可以将应用程序及其依赖打包成一个可移植的容器,实现快速部署和可靠性。 在使用Jenkins进行自动部署时,可以搭配使用DockerMaven来创建一个完整的自动部署环境。首先,我们需要在Jenkins服务器上安装Docker,然后使用Docker创建一个虚拟容器,容器中包含了我们的项目代码和相关的环境依赖。 接下来,我们可以使用Maven来管理和构建我们的项目。在Jenkins上配置好Maven构建任务后,每当代码有更新或提交时,Jenkins自动触发构建任务。在构建任务中,Jenkins会从代码仓库中拉取最新的代码,并使用Maven进行编译、测试、打包等操作。 当构建成功后,Jenkins可以将构建好的应用程序打包成一个Docker镜像,然后将镜像推送到Docker仓库。我们可以使用Docker的相关命令将该镜像部署到服务器上,即可实现自动部署。在部署过程中,Docker自动解析容器中的依赖,并创建一个虚拟环境来运行我们的应用程序。 通过使用JenkinsDockerMaven,我们可以实现一个完整的自动部署环境。这样一来,我们只需要在代码有更新时提交到代码仓库,Jenkins就会自动触发构建任务,并将构建好的应用程序部署到服务器上。这大大提高了部署效率,减少了人工操作的错误和风险,同时也提高了系统的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值