• 个人项目部署方案


    系统部署

    旧部署方式是在 git 的推送回调中执行当前的项目的部署, 由于前段项目存安装依赖, 编译打包等步骤, 直接在当前项目重新部署会导致当前服务挂掉或出现问题.
    时间能持续好几分种, 极其影响体验. 因此准备使用 docker 来优化服务部署.

    新部署

    1. 在项目库增加代码推送 Hook, 地址为 Jenkins 内置的回调 url.
    2. 在 Jenkins 中增加构建任务, 构建脚本如下:
    #!/bin/bash
    
    set -ex
    
    # 进入docker目录
    cd /root/workspace/docker/note
    
    # 更新代码 安装依赖 编译
    git reset --hard HEAD
    git pull origin master
    npm install
    npm run build
    
    # 生成docker 
    tag=note:${BUILD_NUMBER}
    # 生成最新镜像
    docker build --no-cache -t ${tag} .
    # 生成使用镜像
    docker build -t note .
    
    # 删除测试容器
    exist=`docker container ls -a | grep note-test | wc -l`
    if [ "$exist" != "0" ]; then
    	docker container rm -f note-test
    fi
    
    # 启动测试容器
    docker run -d --name note-test -p 3201:3200 note
    # 暂时 10s 确保服务器已启动完毕
    sleep 10
    
    # 测试容器
    curl http://127.0.0.1:3201 >> /dev/null
    # 删除测试容器
    docker container rm -f note-test
    
    # 删除正式容器
    exist=`docker container ls -a | grep note-run | wc -l`
    if [ "$exist" != "0" ]; then
    	docker container rm -f note-run
    fi
    
    # 启动正式容器
    docker run -d --name note-run -p 3200:3200 note
    

    知识

    • jenkins 自动化构建
    • docker 容器技术

    TODO

    • nginx 负载均衡
    • k8s 集群

    原文

  • 相关阅读:
    android KK版本号,如何更改蓝牙设备类型
    C# DataTable的詳細使用方法
    JAVA进阶-注解
    Android -- Looper.prepare()和Looper.loop() —深入版
    Java面试宝典2013版(超长版)
    HttpClient使用具体解释
    中间件
    Java笔试题集锦
    BDB (Berkeley DB)数据库简单介绍(转载)
    struts2 通配符简化配置
  • 原文地址:https://www.cnblogs.com/--xiaoyao--/p/11301505.html
Copyright © 2020-2023  润新知