2、安装pm2
可能需要建立软连接
3、部署
最后服务器项目目录里面就是这几个文件
.nuxt
static
nuxt.config.js
package.json
package-lock.json
上传好后,运行 npm install 安装依赖(建议 npm install --unsafe-perm=true --allow-root )
最后运行 npm run start 启动项目
刚才已经安装了pm2,在项目上传后,进入项目目录,用 pm2 执行运行命令
pm2还有很多命令,常用的
pm2 list // 查看任务列表
pm2 stop app_name|app_id // 停止指定name或者id的任务
pm2 stop all // 停止所有任务
pm2 delete app_name|app_id // 删除指定name或者id的任务
pm2 delete all // 删除所有任务
pm2 logs // 查看日志
pm2 kill // 杀死pm2进程
Nginx配置
nuxt部署
next.js、nuxt.js等服务端渲染框架构建的项目部署到服务器,并用PM2守护程序
操作环境:虚拟机:ubuntu 16.04 LTE 64位
node镜像,star数很高,我们使用它作为基础镜像.latest为tag标签,标识是哪个版本。这一步,也可以省略,后面的Dockerfile文件,会自动拉取该镜像。
写一个最简单的web,监听8888端口,返回Hello world。
使用了node官方建议的框架express
$ touch server.js
$ vi server.js
Docker会依照Dockerfile的内容来构建一个镜像。
$ cd ..
$ touch Dockerfile
$ vi Dockerfile
在Dockerfile文件所在目录下,运行下面命令来构建一个Image
构建完后查看一下刚构建的镜像:
-d 表示容器在后台运行
--name 表示给容器别名 nodewebsite
-p 表示端口映射。把本机的8888端口映射到容器的8888端口,这样外网就能通过本机的8888端口,访问我们的web了。
后面的 weiqinl/node 是image的REPOSITORY, latest的镜像的TAG
到此,Docker部署nodejs应用,已经完成。
第一步:下载Node.js为了程序的快速部署,node.js不需要自己编写,下载一个现成的镜像到本地即可,如图:
第二步:安装Node.js镜像打开安装包,找到node.js镜像,安装到程序包。
第三步:编写package.json程序在程序中创建package.json,并编写以下依赖代码;
vi package.json
{
"name": "webtest",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "lpxxn",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.13.3"
}
}
第四步:创建server.js程序创建一个服务器端口检测js程序server.js,并写入以下监听80端口代码;
vi server.js
'use strict'
var express = require('express')
var PORT = 8888
var app = express()
app.get('/', function (req, res) {
res.send('Hello world\n')
})
app.listen(PORT)
console.log('Running on http://localhost:' + PORT)
第五步:创建镜像文件DockerfileDockerfile是整个程序中最重要的一员,也是创建镜像的基础文件,创建文件并写入以下编码:
vi Dockerfile
# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service
# Bundle app source
COPY . /home/Service
RUN npm install
EXPOSE 8888
CMD [ "npm", "start" ]
然后启动web app
第六步:构建镜像在Dockerfile相同的目录下构建一个镜像docker build -t mynodeapp .
第七步:运行镜像在命令行中输入docker run -d -p 80:8888 ac5,运行程序。
第八步:命令行测试在cmd命令中输入:curl -i localhost:8888,访问web app;
第九步:浏览器测试在浏览器中输入localhost:8888,如果页面显示hello World!表示镜像部署成功。如图: