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
- 就可以用網頁瀏覽到回傳的資料http://localhost:5000
建立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上面執行