Skip to main content

Dockerize NodeJS

Add a .dockerignore File

  • 在根目錄增加一個.dockerignore檔
node_modules
npm-debug.log

Add a Dockerfile

  • 在根目錄增加一個Dockerfile檔
FROM node:16

\# Create app directory
WORKDIR /usr/src/app

\# Install app dependencies, wildcard is used to ensure both package.json AND package-lock.json are copied
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" ]

Add a docker-compose.yml

  • 在根目錄建立一個docker-compose.yml檔
version: "3.8"
services:
xuanapi:
container_name: xuanapi
restart: always
image: xuanapi
build:
context: .
ports:
3001:3001
volumes:
- ./images:/usr/src/app/images

Build Docker Image

  • 建立Image並同時給標籤
$ docker build . -t weili0505/xuanapi
//如果想要刪除乾淨並重新建立Image
$ docker build --pull --no-cache --tag weili0505/xuanapi .
$ docker images

Push to Docker Hub

  • 在Docker Hub 建立一個私人的repo
$ docker login
$ docker push weili0505/xuanapi