利用 pm2
做管理(因为 docker 坑很深 加上来的话会写不完)
Express 是会执行一个 Process
常驻
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.json({title: 'Hello World!'})
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
最简单的一个 hello world 的程序
如果在 local 端跑起来可以用浏览器打开 http://localhost:3000
就会看到 Hello World!
module.exports = {
apps: [
{
name: 'express-demo',
script: 'app.js',
watch: '.',
env: {
NODE_ENV: 'development',
},
},
],
};
stages:
- deployExpress
image: gitlab/dind
services:
- docker:dind
deployExpress:
stage: deployExpress
tags:
- self-runner
only:
- deployDev
script:
- yarn install
- cp "${DEV_ENV}" .env
- pm2 delete ecosystem.config.js
- pm2 start ecosystem.config.js
这是最简单的范例
这样直接部署比较简单
单一程序基本上就可以跑起来了
但是如果是有很多个 Process
需要管理
可能就是另一个管理的篇章
这次都只会讲到最基础的部署逻辑
在 gitlab 上的sidebar 看 CI\CD
就可以看到工作状态
如果是 pass
的话
利用浏览器打开 http://${ip}:3000
就可以看到 Hello World!
的文字
这时候就可以补上其他 route
可以达成最基础的 API 部署实作
<<: [13] [烧瓶里的部落格] 03. Blueprints 和 View function
除了有语音转文字的服务, GCP 也提供了文字转语音的服务。 可以想像过去我们在游戏或是动画中需要很...
阵列操作介绍 (下篇) 介绍四种阵列运用: map filter find findlndex 3....
Creational 建立相关的 patterns 已经告一段落,接下来要进入 Structural...
前言 大家好,我是辅大大三的学生,由於课程所需让我接触到铁人赛,因此我和同学一起组队参加,首先谢谢大...
前言 SwiftUI Picker 可以让我们自行选择项目, 也可以选择不同的呈现方式, 这篇文章来...