docker部署Jenkins自动化打包部署vue、java项目上线

使用docker命令拉取Jenkins镜像

docker  pull jenkins/jenkins:lts

docker  images查看镜像是否拉取成功

创建Jenkins映射目录

sudo mkdir -p  /docker/jenkins/jenkins/jenkins_home

#注意:这里的目录jenkins_home一定要给读写权限,否则容器内部文件映射不出到宿主机导致无法启动容器

启动Jenkins

docker run -d  --name jenkins -p 90:8080  \

-v /docker/jenkins/jenkins/jenkins_home:/var/jenkins_home \

jenkins/jenkins:lts

登录Jenkins

http://你的IP:90

这里的密码可以查看你的Jenkins日志获取,也可以在我们刚才映射的目录下获取

我这里查看刚才映射的目录获取

cat /docker/jenkins/jenkins/jenkins_home/secrets/initialAdminPassword 

安装插件

这里很多插件会爆红,但是不影响,等会更新一下更新中心就可以了

创建用户,也可以直接使用admin继续登录

开始使用Jenkins

更改更新中心地址

将中心镜像改为(亲测可用)

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

安装插件

系统管理>>>>>插件管理

由于我们的项目需要用到gitlab、git、gradle、nodejs,所以我们需要安装这四个插件

gitlab是代码仓库。git拉取代码工具、gradle为打包java的插件,nodejs为打包vue前端工具

点击第三个表示是已安装的插件,只要选择后缀带有Plugin的安装即可,这里我就不一一列举

全局配置刚才我们安装的插件

nodejs跟gradle一样选择自动安装,这里安装不会在宿主机安装,是在Jenkins内部的,选择完之后点击《保存》即可

部署vue前端

新建任务>>>新建任务>>>构建一个自由风格的软件项目

仓库地址就是你的gitlab代码的地址

登录你的gitlab仓库找到代码仓库,使用http克隆这个地址粘贴到上面的仓库项目地址里面

配置nodejs

build构建,这里选择执行shell

在你的/docker/jenkins/jenkins/jenkins_home/workspace/vue目录下创建nginx的配置文件、Dockerfile、vue.sh脚本

sudo  vim  default.conf

    server {
        listen       80;
        server_name  你本机IP;
        location / {
            root /usr/share/nginx/html;
                try_files $uri $uri/ /index.html last;
                index index.html;
        }
        location /api/ {###这里的/api/指的是前端只要有xxxx.api的时候匹配到/api/就转发到后端
        proxy_pass http://java程序IP+端口/;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    }

创建dockerfile

sudo  vim Dockerfile

#使用官方 nginx 镜像作为基础镜像  
FROM nginx:latest  #使用nginx镜像
EXPOSE 80   ##端口镜像端口映射为80,可以随便改
COPY  dist/   /usr/share/nginx/html  #将当前目录下的dist目录复制到nginx的html目录
ADD  default.conf   /etc/nginx/conf.d   #将本地目录的nginx配置文件映射到容器内部的nginx

创建vue.sh整合打包部署容器

sudo  vim vue.sh

#!/bin/bash
# 强制删除名为 vue 的容器(如果存在)
docker rm -f vue 2>/dev/null

# 删除名为 vue:v1 的镜像(如果存在)
docker rmi -f vue:v1 2>/dev/null

# 构建名为 vue:1 的镜像
docker build -t vue:1 .

# 运行 vue:v1 镜像
docker run -d --name vue -p 80:80 vue:1

# 查看镜像并输出结果
if docker ps | grep vue; then
  echo "容器创建成功"
else
  echo "容器创建失败"
fi

给脚本权限

sudo chmod 755 vue.sh

这里就可以保存了,点击立即购构建

部署java后端

新建任务>>>>给任务一个名称,叫什么随便你,这里创建之后会在

/docker/jenkins/jenkins/jenkins_home/workspace目录下

前面构建跟vue一样的配置

这里的URL是你后端代码的仓库地址,一样选择http的方式,凭据因为刚才已经填过了,所以这里还会有显示,我们点击选择就好

执行脚本,该脚本必须为于当前打包目录下,也就是你的项目名称下的目录,不能放在打jar包的目录,否则会被自动删除,脚本在后面提供

最后保存构建项目

打包好的jar包在这里

 /你创建Jenkins时候映射的目录/jenkins_home/workspace/你刚才起的项目名称/build/libs/

在刚才创建的工程目录下写Dockerfile

sudo  vim  Dockerfile

#####################################

# 使用 JDK 21 的基础镜像
FROM openjdk:21-jdk

# 设置工作目录
WORKDIR /app

# 将 JAR 文件复制到容器中
COPY java.jar /app/java.jar

# 暴露端口 8081
EXPOSE 8081

# 设置容器启动命令
ENTRYPOINT ["java", "-jar", "java.jar"]

##############################################

编写一个shell脚本用来执行创建容器命令

sudo  vim java.sh

#################################################3

#!/bin/bash
# 强制删除名为 java 的容器(如果存在)
docker rm -f java2 2>/dev/null

# 删除名为 java2:v1 的镜像(如果存在)
docker rmi -f java2:1 2>/dev/null

# 构建名为 java2:1 的镜像
docker build -t java2:1 .

# 运行 java2:v1 镜像
docker run -d --name java2 -p 8020:8010 java2:1

# 查看镜像并输出结果
if docker ps | grep java2; then
  echo "容器创建成功"
else
  echo "容器创建失败"
fi

############################################################

前后端部署完毕,小编踩了很多坑,有不懂的可以后台私信,我会的我就告诉你,至于为什么没有数据库,数据库一般都是提前部署好的,开发跟前端代码里就已经指定好数据库的IP等信息了,如果你是一个人,那你可以这样部署MySQL

docker run -d \
--name mysql \
--restart always \
--privileged=true -p 3306:3306 \
-v /docker/mysql/data:/var/lib/mysql \
-v /docker/mysql/conf:/etc/mysql/conf.d \
-v /docker/mysql/1ogs:/var/1og/mysq1 \ 
-e MYSQL_ROOT_PASSWORD=root \ 
-d mysql:8.0
 

  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值