iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0

Express

利用 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!

ecosystem.config.js

module.exports = {
  apps: [
    {
      name: 'express-demo',
      script: 'app.js',
      watch: '.',
      env: {
        NODE_ENV: 'development',
      },
    },
  ],
};

gitlab-ci.yml

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

這是最簡單的範例

  • tags - custome runner
    直接在 server 安裝 runner

這樣直接部署比較簡單

單一程式基本上就可以跑起來了

但是如果是有很多個 Process 需要管理

可能就是另一個管理的篇章

這次都只會講到最基礎的部署邏輯

在 gitlab 上的sidebar 看 CI\CD 就可以看到工作狀態

如果是 pass的話

利用瀏覽器打開 http://${ip}:3000

就可以看到 Hello World! 的文字

這時候就可以補上其他 route

可以達成最基礎的 API 部署實作


上一篇
Day11-React 公測與產品的環境切分
下一篇
Day-13-Express 公測與產品的環境切分
系列文
和 gitlab 一起當個好朋友15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言