zoukankan      html  css  js  c++  java
  • 个人项目部署方案

    系统部署

    旧部署方式是在 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 集群

    原文

  • 相关阅读:
    徒手用Java来写个Web服务器和框架吧<第二章:Request和Response>
    徒手用Java来写个Web服务器和框架吧<第一章:NIO篇>
    Linux使用小笔记<进程操作篇>
    shell条件判断
    rz和sz上传下载文件
    vim 快捷键
    while read读取文本内容
    云主机启动提示Booting from Hard Disk GRUB
    centos7进入单用户模式
    账号被锁无法ssh登陆
  • 原文地址:https://www.cnblogs.com/--xiaoyao--/p/11301505.html
Copyright © 2011-2022 走看看