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