-
Cài đặt
-
Dockerfile
FROM node:13-alpine WORKDIR /app COPY . . RUN npm install CMD ["npm", "run", "dev"]
-
Vì sử dụng docker mongo để lưu trữ dữ liệu, dữ liệu sẽ biến mất sau khi container bị ngừng. Vì vậy cần mount volumes các thư mục chưa dữ liệu.
- Tạo thư mục .docker/data/db để chứa dữ liệu mongodb
- Tạo thư mục .docker/data/redis để chứa dữ liệu redis
-
docker-compose.yml
version: "3.4" services: app: image: learning-docker/docker-node-mongo-redis:v1 volumes: - ./:/app environment: - DB_HOST=${DB_HOST} - DB_NAME=${DB_NAME} - REDIS_HOST=${REDIS_HOST} - REDIS_PORT=${REDIS_PORT} - PORT=${PORT} ports: - "${PORT}:${PORT}" restart: unless-stopped depends_on: - redis - db db: image: mongo volumes: - .docker/data/db:/data/db restart: unless-stopped redis: image: redis:5-alpine volumes: - .docker/data/redis:/data restart: unless-stopped
- depends_on: khi chạy service app, sẽ chạy service db và redis trước
- Khi chạy docker-compose up app thì cả service db và redis cũng sẽ chạy
- Khi chạy docker-compose stop thì service app sẽ tắt trước service db và redis
- Lưu ý: mặc dù các service db và redis chạy trước khi service app chạy thì cũng không đảm bảo mongo sẵn sàng cho việc kết nối.
-
Chạy npm install để tạo thư mục node_modules
- Nếu môi trường ngoài không code npm thì cần chạy một container tạm thời
$ docker run --rm -v $(pwd):/app -w /app node:13-alpine npm install
-
Khởi chạy
$ docker-compose up
-
-
Tài liệu tham khảo
docker-node-mongo-redis's Introduction
docker-node-mongo-redis's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.