当前位置: 代码迷 >> 综合 >> jenkins + nginx 前端项目自动化部署记录
  详细解决方案

jenkins + nginx 前端项目自动化部署记录

热度:73   发布时间:2023-09-22 01:14:04.0

文章目录

  • 一、步骤梳理
  • 二、参考文档

一、步骤梳理

1、docker 安装、启动 jenkins、nginx,
2、jenkins 步骤
git 地址、账户、webhooks 钩子配置 jenkins 主机;ssh 远程主机;

  • 新建 job

  • General:
    github 项目 url

  • 源码管理
    Git:url、credentials(系统配置选择)、branch(*/master)、Additional Behaviours(调整 clone\fetch 超时时间,拉取时间跟网络有关经常失败)

  • 构建触发器
    GitHub hook trigger for GITScm polling:前提 github 项目的 settings 下 webhooks 钩子配置 jenkins 主机http://ip:port/github-webhook/,及 jenkins 实例配置 jenkins url 一致匹配http://ip:port/

  • 构建环境
    Provide Node & npm bin/ folder to PATH:安装 node 插件,全局管理配置、此处选择需要 node 版本

  • 构建
    1、基本构建步骤:重新安装构建打包(用于提交远程);(当前路径在 jenkins 的对应 workspace 下)

    rm build.tgz
    npm i
    npm run build
    tar *zcvf build.tgz build
    

    2、Send files or execute commands over SSH
    安装 publisher over ssh
    全局管理配置 ssh server 应用
    source files 所在路径 默认为 当前 workspace,文件内容为拉取 git 的内容以及上一步打包的内容;
    (传递到远程服务指定路径)转移文件到 nginx 管理目录下、重启 nginx 服务

  • push 启动构建
    2.1 jenkins 本机外部访问辅助工具:ngrok
    ngrok 使用文档
    免费注册账户,登记 authtoken:ngrok.exe authtoken yourAuthToken,有效时长可增加;执行命令:ngrok.exe http port, port 为 jenkins 的端口;地址例子: http://aa39-113-110-203-220.ngrok.io/github-webhook/

3、nginx 步骤

  • docker 安装的 nginx 在 docker 管理下,需通过 docker exec -it nginx bash 进入才可管理;为方便配置 nginx,外链项目路径进行配置管理
    docker run --name nginx1 -d -p 8080:80 \
-v /data/web/nginx/log:/var/log/nginx \
-v /data/web/nginx/conf.d:/etc/nginx/conf.d \
-v /data/web/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/web/nginx/html:/usr/share/nginx/html nginx#    挂载日志目录
#    挂载配置目录
#    挂载主配置文件
#    挂载项目目录
  • 编辑/data/web/outnginx/conf.d/default.conf
    root vs alias 1.使用 alias 时,目录名后面一定要加”/“,指定的目录是准确的,给 location 指定一个目录;root 目录名后面不加”/“,指定目录的上级目录,并且该上级目录要含有 locatoin 指定名称的同名目录。 2.使用 alias 标签的目录块中不能使用 rewrite 的 break。
    3.alias 在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
    4.alias 只能位于 location 块中,root 可配置块:http、server、loaction、if

二、参考文档

部署参考文档
jenkins 在 docker 下使用学习手册
jenkins 初始化时设置账户密码登陆无效参考文档
nginx 配置 root、alias 区别
docker nginx 配置文件修改挂载