首页 > 其他分享 >Docker:Docker搭建Jenkins并共用宿主机Docker部署服务(三)构建Vue前端服务

Docker:Docker搭建Jenkins并共用宿主机Docker部署服务(三)构建Vue前端服务

时间:2024-11-25 12:46:06浏览次数:7  
标签:Vue IFS 宿主机 nginx 构建 参数 Docker etc

前言

继续完成前端服务部署,Jenkins的搭建与插件安装可以观看上一篇文章:https://www.cnblogs.com/nhdlb/p/18561435

新建视图

方便将整个项目的前端和后端整合起来(之前的文章都已经创建,这里就不用再创建啦!)

新建任务

选择视图

创建项目(任务)

任务配置

项目结构

这里我先介绍下项目结构,方便大家对后续操作的理解

Dockerfile文件内容如下:

FROM nginx:1.25.3

# 设置构建参数
ARG WEBPORT

# 将生成的静态页面文件复制到nginx的/usr/share/nginx/html/目录
COPY dist/ /usr/share/nginx/html/

# 将nginx.xml配置文件复制到镜像中
COPY nginx-docker.conf /etc/nginx/nginx.conf

# 端口
EXPOSE ${WEBPORT}

# 容器启动时运行的命令
CMD ["nginx", "-g", "daemon off;"]

docker-compose.yml文件内容如下:

networks:
  higec_net:
    external: true
services:
  web:
    image: liv****k-web:latest
    container_name: liv****k-web
    restart: always
    ports:
      - 9300:9300
    networks:
      higec_net:
        ipv4_address: 172.19.8.70
    volumes:
      - /etc/timezone/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime:ro

配置参数化构建

这里配置参数的作用是后续shell脚本可以根据参数生成镜像和容器

配置项目地址

配置构建日志名称

自定义命名

引用参数构建命名

配置Shell脚本

#!/bin/bash

# 判断上条命令是否执行成功,当执行失败的时候显示错误信息,并停止向下执行
function pauseErr(){
    if [ $? -ne 0 ];then
        echo "命令执行失败,终止shell脚本运行"
        #当上一条命令执行失败后,直接退出脚本,阻止脚本向下执行
        exit 1
    fi
}

# 保存旧的IFS值
OLD_IFS=$IFS
# 设置IFS为逗号
IFS=','
# 将字符串分割成数组
echo "########## 读取参数构建信息 #####################"
read -ra ports <<< "$module_port"
# 恢复IFS为旧值
IFS=$OLD_IFS
# 获取名称
module_name=${module_port%%/*}
echo "########## 名称 : $module_name  #####################"
# 获取端口
module_port=${module_port##*/} 
echo "########## 端口 : $module_port  #####################"


echo "########## 清除npm缓存 并 取消ssl验证 #####################"
# 清除npm缓存
npm cache clean --force
# 取消ssl验证
npm config set strict-ssl false
# 更改淘宝源
#npm config set registry http://registry.npm.taobao.org 
pauseErr

echo "########## 下载依赖 并 构建服务 #####################"
#下载依赖 并 构建服务
npm install --registry=https://registry.npm.taobao.org && npm run build
pauseErr



set +e
	echo "########## 构建Docker容器 #####################"
    if docker ps -a | grep "$module_name"; then
        echo "########## 删除 $module_name 容器 #####################"
        # 使用docker rm命令删除容器,-f表示强制删除
        docker rm -f $module_name
    fi
    if docker images | grep "$module_name"; then
        echo "########## 删除 $module_name 镜像 #####################"
        # 使用docker rmi命令删除镜像
        docker rmi $module_name
    fi
    pauseErr
    echo "########## 构建 $module_name 镜像 #####################"
    # 构建镜像
    docker build -t $module_name:latest --build-arg WEBPORT=$module_port . 
    #调用PauseErr函数判断上条命令是否执行成功
    pauseErr
    echo "########## 构建 $module_name 容器 #####################"
	#sleep 10s
	docker-compose up -d
	pauseErr
	echo "########## 容器运行完成 #####################"
set -e

保存配置!!!

运行构建

查看Docker镜像和容器

前端容器构建完成!!!!

标签:Vue,IFS,宿主机,nginx,构建,参数,Docker,etc
From: https://www.cnblogs.com/nhdlb/p/18567301

相关文章

  • Java:基于springboot+vue的游戏交易系统
    作者主页:IT小舟简介:Java领域优质创作者、Java项目、学习资料、技术互助文中获取源码项目介绍本系统一共管理员,用户两个角色。管理员登录进入本系统操作的功能包括对商品信息,订单投诉信息,商品评价信息,商品收藏信息,会员等级信息,商品订单信息等进行管理用户登录进入本......
  • Java:168 基于springboot+vue的游戏交易系统
    作者主页:舒克日记简介:Java领域优质创作者、Java项目、学习资料、技术互助文中获取源码项目介绍本系统一共管理员,用户两个角色。管理员登录进入本系统操作的功能包括对商品信息,订单投诉信息,商品评价信息,商品收藏信息,会员等级信息,商品订单信息等进行管理用户登录进入......
  • 使用JQ和vue的区别?
    jQuery和Vue.js是两种不同的前端技术,它们在用途、设计理念、使用场景和性能上都有所不同。以下是使用jQuery和Vue.js的主要区别:jQuery库vs框架:jQuery是一个库(Library),它提供了一系列用于简化DOM操作和事件处理等任务的工具。Vue.js是一个框架(Framework),它不仅提......
  • vue3搭建成功后的一些简单配置
     vue3搭建成功后的一些简单配置 1.浏览器增加扩展插件“Vue.jsdevtools”极简插件:https://chrome.zzzmh.cn/搜索vue(建议再装一个json展示格式化插件)  2.下载vscode官网:https://code.visualstudio.com/Download安装好后,将......
  • [转]Docker/DockerHub 国内镜像源/加速列表(11月23日更新-长期维护)
    原文地址:Docker/DockerHub国内镜像源/加速列表(11月23日更新-长期维护)-轩辕博客文章目录 [隐藏]1 前言2 更新日志3 使用教程3.0.0.1 为了加速镜像拉取,使用以下命令设置registrymirror3.0.0.2 使用DockerHub代理,以下以docker.linkedbus.com 为例:可以根......
  • docker-compose 配置文件内容详解以及常用命令介绍
    一、DockerCompose简介DockerCompose是一种用于定义和运行多容器Docker应用程序的工具。通过一个docker-compose.yml文件,您可以配置应用程序需要的所有服务(例如:Web服务器、数据库、缓存等)并轻松管理它们。Docker Compose使用的三个步骤:使用Dockerfile定义应用程序的......
  • 【web】Gin+Go-Micro +Vue+Nodejs+jQuery+ElmentUI 用户模块之vue登录开发以及接口联
    在现代Web应用中,实现用户登录模块是一个关键功能。本文将分为初级、中级、高级阶段,详细说明如何使用Vue、ElementUI进行登录开发,并与Gin、Go-Micro、Node.js进行接口联调。初级用法介绍在初级阶段,主要关注于使用Vue和ElementUI创建一个简单的登录界面,并通过Node.js后端进......
  • 2025年前端面试准备vue篇
     1.VUE的声明周期有哪些及每个生命周期做了什么beforeCreate:是newVue()之后触发的第一个钩子,data,methods,computed以及watch上的数据和方法都不能被访问created:在实例创建完成后发生,可以做一些初始化数据的获取,在当前阶段无法与Dom进行交互,如果非要可以通过......
  • 笔记-速通Docker
    Intro最近得学FastAPI了,为了不弄乱环境,于是决定用Docker。Docker容器安装FastAPIDocker自己想办法装(首先拉取pyhton的镜像。为什么不拉FastAPI的镜像?因为后面可能会有别的需求。dockerpullpython:alpine然后,建一个工作目录方便后续工作。先简单的写一个FastAPI的应用......
  • vue-指令
    v-bind用于将变量与页卖弄元素的属性建立关联属性绑定的值部分可以用js代码段要与原生的属性适配普通属性使用字符串disabled使用bol值class使用字符串也可以使用json配置每个样式对应一个bol值:class="{'cls1':clsStatus1,'cls2':clsStatus2}"v-bind:......