Skip to main content

Environment

安裝NodeJS

  • 到官方網站下載安裝程式
  • 測試是否安裝成功
C:\Users\User> node -v

開一個新的專案

cd D:\workspace\HelloWorld
D:\workspace\HelloWorld> npm init

安裝Express及nodemon

cd D:\workspace\HelloWorld
D:\workspace\HelloWorld> npm i express mysql
D:\workspace\HelloWorld> npm i -D nodemon

安裝Joi

  • Joi 是一個資料檢查的機制,可以規範 schema 來限制使用者輸入的資料格式
npm i @hapi/joi

建立index.js

  • 在src裡面增加一個檔案叫做index.js
const express = require('express');
const app = express();

app.get('/', (req,res)=>{
res.send({hi:'there'});
})

app.listen(5000);

存檔之後回到Terminal

> node index.js

建立Dockerfile檔

  • 在根目錄建立一個檔案Dockerfile
FROM node:16

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm ci --omit=dev

# Bundle app source
COPY . .

EXPOSE 3001
CMD [ "node", "index.js" ]

建立dockerignore檔

  • 在根目錄建立一個檔案.dockerignore
node_modules
npm-debug.log

Build映像檔

docker build . -t weili0505/kitchenapi

推到Docker Hub

打開Docker Desktop
點選image > 右上角的藍色下拉鍵 > Push to Hub
之後就可以用NAS裡的Docker搜尋並下載到NAS上面執行