ExpressJS trên Docker

Cài đặt Docker

Xem cách cài đặt Docker ở đây

Tạo một NodeJS App

Xem cách tạo ứng dụng helloworld với ExpressJS ở đây

Tạo một image Docker

Trước hết ta tạo một file Dockerfile trống bằng câu lệnh

$touch Dockerfile

Copy nội dung sau vào file này:

FROM node:8.12.0-jessie
# Create app directory
WORKDIR /usr/src/app
# Bundle app src
COPY . .
# Install app dependencies
RUN npm install
EXPOSE 3000
CMD [ "node", "index.js" ]

Ý nghĩa:

  • Dòng FROM node:8.12.0-jessie chỉ ra rằng chúng ta muốn build từ image nào, ở đây mình dùng image 8.12.0-jessie có NodeJS version 8.12.0 LTS. Khi mình chạy lệnh build nó sẽ vào Docker Hub để lấy image này về để cho chúng ta thêm phần của mình vào .
  • Dòng WORKDIR /usr/src/app là nơi chứa code của chúng ta trong image.
  • Dòng COPY . . copy toàn bộ source của project vào trong image.
  • Dòng RUN npm install download các dependencies.
  • Dòng EXPOSE 3000 vì helloworld listen ở cổng 3000 nên ta sẽ EXPOSE ra tại cổng 3000.
  • Dòng cuối cùng CMD [ "node", "index.js" ] dùng CMD để chạy app.

Build image

Sử dụng câu lệnh sau

$docker build --rm -f Dockerfile -t helloworld:latest .

Nhớ có dấu . sau cùng nhen! Dấu . ở đây ám chỉ Dockerfile đang nằm trong thư mục hiện tại.

Sau khi nhấn ENTER, nó vào Internet pull image gốc về như hình

Sau khi chạy xong chạy lệnh kiểm tra xem nó đã tạo ra image chưa

$docker images

Run image

$docker run --rm -d -p 3000:3000 helloworld:latest

Rồi kiểm tra process bằng $docker ps

Vào Chrome chạy và test thử http://localhost:3000

Nếu màn hình xuất hiện chữ “Hello World!” là done. Congratulation!

Leave a Reply

Your email address will not be published. Required fields are marked *