当前位置:首页 » 《休闲阅读》 » 正文

部署Nuxt3项目(含PM2、Docker部署,及配合jenkins实现自动化部署)

16 人参与  2024年04月05日 15:05  分类 : 《休闲阅读》  评论

点击全文阅读


本篇专栏基于笔者的Vue专栏,Nuxt3系列,如有不连贯之处可查看Nuxt3系列其他文章!特此说明

笔者这里的环境是两台服务器,一个是jenkins服务器,一个是测试服务器;
jenkins服务器中的jenkins是通过docker-compose部署的, 如果需要配置可以留言或私信作者;
测试服务器中的nginx是单独安装的,然后测试服务器中还安装了docker
不管是pm2部署还是docker部署,最终都是用nginx将服务代理出去,nginx服务代理配置会在下面,具体体现;

一、PM2部署

nuxt3 建议node版本最低为18.16.0,如果服务器上有多个项目依赖node版本不建议直接更改,建议采用docker方式进行部署

1 - 项目根目录创建pm2配置文件

// ecosystem.config.jsmodule.exports = {    apps: [        {            name: '项目名',            port: '10200',            exec_mode: 'cluster',            instances: '3',            script: './.output/server/index.mjs'        }    ]}

执行pm2 start ecosystem.config.js

二、Docker镜像部署

1 - 编写Dockerfile文件

# 第一阶段FROM node:18.16.0 AS build-stage# 创建工作目录RUN mkdir -p /appWORKDIR /app# 复制项目文件和目录到容器中COPY . /app# 安装依赖项并构建应用程序RUN npm install --registry https://registry.npmmirror.com && \    npm run build && \    npm cache clean --force# 清理node_modules目录RUN rm -rf ./node_modules# 第二阶段FROM node:18.16.0 AS runtime-stage# 创建工作目录RUN mkdir -p /appWORKDIR /app# 复制构建阶段生成的输出到运行时阶段COPY --from=build-stage /app/.output /app/.outputCOPY ./package.json /app/# 设置环境变量ENV NITRO_PORT=10200# 暴露端口EXPOSE 10200# 设置入口点为启动脚本ENTRYPOINT ["npm", "run", "start"]

2 - 编写docker-compose.yml

version: "3"services:  项目名称:    image: Dockfile打包好的项目镜像    restart: unless-stopped    build:      context: ./    ports:      - 10200:10200    container_name: 容器名称,一般是用项目名称即可

3 - 修改package.json

{..."script": {"build": "nuxt build",    "dev": "nuxt dev --host",    "generate": "nuxt generate",    "preview": "nuxt preview",    "postinstall": "nuxt prepare",    "start": "node .output/server/index.mjs"}...}

4 - 使用jenkins进行自动化部署

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

笔者这里使用的是手动触发,如果向推送触发可以使用webhook

在这里插入图片描述
在这里插入图片描述

注意看蓝色文字

在这里插入图片描述

然后点保存

5 - 编写上传到测试服务器的脚本文件

这里其实就是上面jenkins配置的,Remote directory目录下

cd `jenkins remote directory`sudo vim pub.sh
#!/bin/bash  local_file="/jenkins remote directory/项目docker镜像.tar"remote_dir="/测试服务器目录"scp -i ./私钥文件 "$local_file" "root@测试服务器地址:$remote_dir"s1="cd /测试服务器目录"s2="docker rm -f 项目docker镜像"s3="docker rmi 项目docker镜像"s4="docker load -i ./项目docker镜像.tar"s5="docker-compose up -d"ssh -i ./私钥文件 root@测试服务器地址 "$s1; $s2; $s3; $s4; $s5;" > ./output.txt

到此,如果配置没有问题的话就完成了自动化部署docker nuxt3项目了,别忘了在jenkins平台中手动构建一下,如果报超时警告了(注意不是错误),需要在该项目jenkins配置中,将12000改成半个小时的秒数,还有就是在测试服务器中提前将写好的docker-compose.yml上传上去,避免报错;

三、配置NGINX代理

server {    listen 80;    server_name test.com;    location / {        proxy_pass http://127.0.0.1:10200;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;    }}server {        listen 443 ssl;        server_name test.com;        ssl_certificate  /usr/local/nginx/conf/ssl/test.pem; #证书文件目录        ssl_certificate_key /usr/local/nginx/conf/ssl/test.key;#证书文件目录        ssl_session_cache shared:SSL:1m;        ssl_session_timeout 5m;        ssl_prefer_server_ciphers on;        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;        ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;client_max_body_size 500M;add_header Cache-Control "no-cache, no-store, must-revalidate";        add_header Pragma "no-cache";        add_header Expires 0;        location / {        proxy_pass http://127.0.0.1:10200;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;    }}

这里没有做强制https如果有需要自行更改


点击全文阅读


本文链接:http://zhangshiyu.com/post/90796.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 进错房,嫁给八零最牛特种兵已完结(林晚夏江肆年)抖音热文_《进错房,嫁给八零最牛特种兵已完结》最新章节免费在线阅读 -
  • 重生后选魔族,天族哭着求我当王全章节(月沁雪任意)全文免费阅读无弹窗大结局_(重生后选魔族,天族哭着求我当王全章节)重生后选魔族,天族哭着求我当王全章节免费阅读全文最新章节列表_笔趣阁(重生后选魔族,天族哭着求我当王全章节) -
  • 捡回摄政王后,她在皇室作威作福完结版小说(景飞鸢赵灵杰)全文免费阅读无弹窗大结局_(捡回摄政王后,她在皇室作威作福完结版免费阅读全文大结局)最新章节列表_笔趣阁(捡回摄政王后,她在皇室作威作福完结版) -
  • 千金难泣(立轩苏子骞翠竹吴进)全本免费在线阅读_千金难泣最新章节在线阅读(立轩苏子骞翠竹吴进)
  • 《沈云阶傅宴辞》(沈云阶傅宴辞》已完结完整版全集大结局小说)全文阅读笔趣阁
  • 《沈凌峰沈国华》已完结小说全文阅读笔趣阁《沈凌峰沈国华》
  • 《傅嫤韩恬魏郯程茂》已完结(傅嫤韩恬魏郯程茂)热门小说全目录完整版)全文阅读笔趣阁
  • 八零俏军医错嫁糙汉军官:番外+全文+后续(贺昭朗孟翩然)完本小说免费_全本免费小说八零俏军医错嫁糙汉军官:番外+全文+后续最新小说全文阅读(贺昭朗孟翩然)
  • 失去千千万万遍在线阅读(阮相宜陆凛言)全文免费阅读无弹窗大结局_(失去千千万万遍在线阅读)失去千千万万遍在线阅读免费阅读全文最新章节列表_笔趣阁(失去千千万万遍在线阅读) -
  • 脱离世界后,妻子疯了火爆小说小说(沈夕颜林程言)全文免费阅读无弹窗大结局_(脱离世界后,妻子疯了火爆小说免费阅读全文大结局)最新章节列表_笔趣阁(脱离世界后,妻子疯了火爆小说) -
  • 跨年发生踩踏,男友为救白月光丢下我(温林初宝宝)免费阅读 -
  • 都重生了,还不离婚等啥呢宋招弟霍文铮小说在线章节免费阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1