Jenkins利用docker部署vue项目

一、环境准备

本次jenkins与部署vue项目在同一台机器,如果不在同一台机器,可以使用Publish Over SSH解决,参考下文
Jenkins部署Git中的Springboot项目(二)

1、安装docker

Centos安装Docker

2、安装nodejs

下载地址:

# 查找自己所需要的版本
https://nodejs.org/dist/latest/
下载
wget https://nodejs.org/dist/latest-v16.x/node-v16.19.1-linux-x64.tar.gz
tar -zxvf node-v16.19.1-linux-x64.tar.gz
# 配置环境变量
vim /etc/profile
# 路径需要自己更换
export PATH=/opt/button/nodejs/node-v16.19.1-linux-x64/bin:$PATH
source /etc/profile

3、安装cnpm与配置淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

在这里插入图片描述

4、jenkins安装nodejs插件

在插件管理中安装nodejs插件并重启jenkins
在这里插入图片描述
在jenkins全局配置中配置nodejs,路径更换为自己的路径即可
在这里插入图片描述

二、jenkins以vue项目

创建项目“vue-test”
在这里插入图片描述
配置:

1、全局参数配置

我这里配置了一个当前部署项目的一个版本号
在这里插入图片描述

2、源码配置

在这里插入图片描述

3、构建环境

在这里插入图片描述

4、构建

在这里插入图片描述
说明:

# vue项目打包完成之后,剩下的工作主要是由deploy.sh完成
cnpm -v
cd element-ui-demo
cnpm install
cnpm run build --prerelease
echo "cnpm打包完成了 "
echo "当前版本号:" $version
chmod 775 ./deploy.sh
sh deploy.sh $version

deploy.sh文件内容:

#!/bin/bash
version=$1
imagename=nginx-agent
container=nginx-agent
echo "执行docker ps"
docker ps 
if [[ "$(docker inspect $container 2> /dev/null | grep $container)" != "" ]]; 
then 
  echo $container "容器存在,停止并删除"
  echo "docker stop" $container
  docker stop $container
  echo "docker rm" $container
  docker rm $container
else 
  echo $container "容器不存在"
fi
# 删除镜像
echo "执行docker images"
docker imagesps 
if [[ "$(docker images -q $imagesname 2> /dev/null)" != "" ]]; 
then 
  echo $imagesname '镜像存在,删除它'
  docker rmi $(docker images -q $imagesname 2> /dev/null)
else 
  echo $imagesname '不存在'
fi
docker build -t nginx-agent:$version .
echo "执行docker images"
docker images 
docker run --name nginx-agent -p 8001:80 -d $imagename:$version

其中还有几个重要的配置文件如下:
Dockerfile

FROM nginx
COPY ./dist/index.html /app/
COPY ./dist/static/js /app/static/js
COPY ./dist/static/css /app/static/css
COPY ./dist/static/fonts /app/static/fonts
COPY ./nginx.conf /etc/nginx/conf/nginx.conf
COPY ./default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

nginx.conf

user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {
    worker_connections  65535;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

default.conf

server {
    listen  80;
    server_name localhost; 
    location / {
            root  /app;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
            }
}

源码地址:

https://gitee.com/superbutton/vue-study

三、构建项目

在这里插入图片描述
查看构建log
在这里插入图片描述

四、访问

http://ip:port
在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值