zoukankan      html  css  js  c++  java
  • 结合docker发布后端项目(基于gradle包管理)的shell脚本

    结合docker发布后端项目(基于gradle包管理)的shell脚本


    本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记。

    注:基于linux操作系统(敏感信息都进行了处理)

    目前主流的前后端分离的项目中,常常在部署上线这个环节会遇到很多麻烦,这里我使用了docker进行部署,这段shell脚本我放在前端工程目录下,每次要部署上线时运行这个文件,可以很方便的帮助上线。注解都写在了代码中。
    
    #!/usr/bin/env bash
    
    // 以下使用变量存放配置信息
    jarName="your_name-0.0.1-SNAPSHOT.jar"  
    BUILD_PROFILE="prod"
    port=7006
    LOGIN_COMMAND="login --username=... -p=... registry.cn-shenzhen.aliyuncs.com"
    DOCKER_NAME="your_name"
    repo="registry.cn-shenzhen.aliyuncs.com/your_name/${DOCKER_NAME}:latest"
    JOB_NAME=${DOCKER_NAME}
    REMOTE_SERVER="root@100.100.100.100"
    
    # Compile
    echo Start to compile...  // 开始打包
    ./gradlew clean&& ./gradlew build -x test  // 使用gradle进行打包
    
    cd ci  // 脚本存放在ci目录下,进入该目录
    jarPath=../build/libs/${jarName} // 定位打包出来的路径
    cp -rf ${jarPath} app.jar // 将打包后的jar包拷贝到ci目录下,同时更名为app.jar
    
    
    # Docker
    echo Start to build docker... // 开始构建docker镜像
    
    // 以下通过Dockerfile文件构建镜像,Dockerfile会在另一篇博客中讲到
    docker build  
    -t ${DOCKER_NAME} 
    --build-arg JAR_FILE="app.jar" 
    --build-arg PROFILE=${BUILD_PROFILE} 
    --no-cache .
    
    // 推送镜像到远程仓库
    docker ${LOGIN_COMMAND}
    docker tag ${DOCKER_NAME} ${repo}
    docker push ${repo}
    
    // 删除临时产生的jar包
    rm -rf app.jar
    
    
    
    # Deploy
    echo deploy to remote server...
    
    // 通过ssh登录远程服务器,并执行命令:拉取镜像,构建容器
    ssh ${REMOTE_SERVER} "
    docker ${LOGIN_COMMAND};
    docker pull ${repo};
    docker rm -f $JOB_NAME || true;
    docker run -d -p ${port}:${port} --name ${JOB_NAME} ${repo};"
    
  • 相关阅读:
    遍历frame中的表单:
    java分页算法
    将oracle数据库表使用命令的形式导入到excle文件中 亲测可用!
    关于解决java读取excel文件遇空行抛空指针的问题 !
    对Excle的行和列进行检查 单元格类型转换代码 ;
    java读取xls和xlsx数据作为数据驱动来用
    关于java读取excle文件的相关方法 ;
    转 Maven常用仓库地址以及手动添加jar包到仓库
    Luogo P2324 [SCOI2005]骑士精神
    Luogu P2483 【模板】k短路([SDOI2010]魔法猪学院)
  • 原文地址:https://www.cnblogs.com/tian874540961/p/11915639.html
Copyright © 2011-2022 走看看