天天看點

Nuxt.js項目Docker部署和pm2部署

### pm2部署           
pm2是一個node程序守護 、監控、自動重新開機以及生成日志的軟體,它可以幫你很好的管理node項目。

安裝node、pm2等必要依賴

# 淘寶npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
# pm2 安裝
npm install pm2 -g
# 軟連接配接(注意軟連接配接路徑必須是絕對路徑)
ln -s /usr/local/node8.11.4/bin/pm2  /usr/local/bin/pm2           

nuxt項目打包

  • 執行

    npm run build

    ,未報異常說明可以正常運作部署,接着Ctrl+C停止nuxt即可,若本地再次運作使用

    npm start

    npm run dev

    ,會覆寫剛才打包的内容。
該指令執行後,會在項目的

.nuxt

生成dist目錄,此時隻需要把下面的檔案複制到伺服器對應的目錄下即可
# 運作 npm run build 後,複制下面的4個檔案到伺服器
.nuxt
static
nuxt.config.js
package.json           

項目運作

需要注意的是,--name後面的名字是package.json中第一行的name
# 在上傳到伺服器的目錄下運作,狀态為online,說明部署成功
pm2 start npm --name "nuxt-django" -- run start --watch           

相關指令

# 清單 PM2 啟動的所有的應用程式
pm2 list
# 顯示指定應用程式的日志
pm2 logs [app-name]
# 停止所有的應用程式
pm2 stop all
# 重新開機所有應用
pm2 restart all           

docker部署

Dockerfile

  • 建立Dockerfile内容如下
FROM node:9.0.0
MAINTAINER www.gaozhe.net
ENV NODE_ENV=production
ENV HOST 0.0.0.0
RUN mkdir -p /app
COPY . /app
WORKDIR /app
EXPOSE 3000
# 國内環境使用,非國内環境使用會報錯
RUN npm config set registry https://registry.npm.taobao.org
RUN npm installCMD ["npm", "start"]           

建構

  • 檔案上傳
把打包後的四個檔案上傳到伺服器對應檔案夾下,将上面建立的Dockerfile也放在此目錄下
# 打包為鏡像,上傳檔案的目錄下運作
docker build -t testimage .           

運作

  • 運作容器
docker run -dti --network=host --restart=always --name test testimage           
  • 檢視是否成功部署
# 未列印異常說明啟動成功
docker logs test
# 檢視nuxt預設端口3000是否開啟成功
netstat -ntlp | grep 3000           

參考文檔

繼續閱讀