nuxt 部署vue项目到centos

1、前提

node_v16.20.0、docker、pm2

2、更新部署

# 【更新部署(test1环境)】
1、git pull
2、docker restart xxx_project_h5_temp

3、第一次部署

# 【第一次部署(test1环境)】
1、更改pm2.json,两处test1
  "script": "npm run build:test1 && npm run start:test1",
2、更改ecosystem.config.js,1处test1
  script: 'npm run dev:test1',
3、创建docker镜像,xxx_project_h5
docker build -t xxx_project_h5 .
4、执行docker,注意端口8087,目前为test1环境的
docker run -d -it --name=xxx_project_h5_temp -p 8087:49105 -v /data/xxx_temp/xxx_project_client/xxx2-mobile:/app xxx_project_h5
5、备注
查看nginx配置,/usr/local/nginx/conf/confs/

4、docker操作

# 【docker操作】
# 移除容器
docker rm -f $(docker ps -a | grep xxx_project_h5_temp)
# 停止容器
docker stop $(docker ps | grep xxx_project_h5_temp)
# 删除字符串包含xxx_project_h5的镜像
docker rmi --force $(docker images | grep xxx_project_h5) 
# 创建镜像
docker build -t xxx_project_h5 .
# 运行镜像并挂载(xxx_project_h5一定要放到后面)
# --restart=always (docker引擎重启后自动运行(也可以理解为操作系统重启后自动运行,如果docker是开机自动运行的话))
docker run -d -it --name=xxx_project_h5_temp -p 8087:49105 -v /data/xxx_temp/xxx_project_client/xxx2-mobile:/app xxx_project_h5
# 查看滚动日志
docker logs -f --tail=300 xxx_project_h5_temp
# 查看docker运行程序
docker ps
# 进入容器
docker exec -it xxx_project_h5_temp sh
# 退出容器
exit

备注

1、Dockerfile

FROM keymetrics/pm2:16-alpine

RUN mkdir -p /app

WORKDIR /app

EXPOSE 41005

RUN npm config set registry https://registry.npm.taobao.org

ENV NPM_CONFIG_LOGLEVEL warn

RUN ls -al -R

CMD ["sh","-c","npm install cross-env --save && npm install && pm2-runtime start pm2.json pm2-runtime start pm2.json"]

2、pm2.json

{
  "name": "your-app-name",
  "script": "npm run build:test1 && npm run start:test1",
  "instances": "1",
  "env": {
    "NODE_ENV": "development"
  },
  "env_production" : {
    "NODE_ENV": "production"
  }
}

3、ecosystem.config.js

module.exports = {
  apps: [
    {
      name: 'xxx_project', // 这个name就是pm2启动时需要的name
      exec_mode: 'cluster',
      instances: '1',
      script: 'npm run dev:test1',
      args: 'start'
    }
  ]
}
posted @ 2023-05-11 12:20  一只桔子2233  阅读(106)  评论(0编辑  收藏  举报