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'
}
]
}