1. Tổng quan
Cấu trúc thư mục trông như sau:
1 2 3 4 5 6 7 8 9 10 |
medihome-vn ├── mh-nodejs │ ├── Dockerfile │ ├── package-lock.json │ ├── package.json │ └── main.js │ ├── mh-nginx │ ├── Dockerfile │ └── default.conf |
2. Server Nodejs: mh-nodejs
2.1. Init Nodejs
1 2 3 4 5 6 7 8 9 10 |
// Có thể sử dụng chuẩn phiên bản cho chắc nvm install 16.16 nvm use 16.16 cd /home/duy.ngo/Project/medihome-vn/mh-nodejs npm init -y npm install express nodemon // Thêm vào mh-nodejs/package.json "start": "nodemon main.js", |
2.2. Tạo file mh-nodejs/main.js
1 2 3 4 5 6 7 8 9 |
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.json("Hello world"); }) app.listen(8888, () => { console.log('Example app listening at PORT 8888'); }) |
-- Có thể chạy
2.3. Tạo file Docker ở thư mục gốc
1 2 3 4 5 6 7 |
FROM node:alpine WORKDIR /app COPY package.json ./ COPY package-lock.json ./ COPY ./ ./ RUN npm i CMD ["npm", "run", "start"] |
2.4. Tạo image và run container nào :3
1 2 3 4 5 |
// Tạo image: -f: đường dẫn file, -t: name:tag, . làm việc với thư mục nào docker build -f ./mh-nodejs/Dockerfile -t server-nodejs:1.0.0 ./mh-nodejs/ // Run thử với cổng ở local là 9999 docker run -it --name my-nodejs -p 9999:8888 server-nodejs:1.0.0 |
-- Kết quả