如何使用 Docker-Compose 编排 Nodejs 项目?
2018-02-13 by dongnan
目标
承接上篇文章,当有了自定义的 nodejs
应用镜像,接下来可以通过 docker-compose
来编排应用。
这里演示的项目包括: 一个 web
服务,以及一个 DB
服务。
环境
请参考 如何使用 Docker 创建 Nodejs 容器? 这篇文章。
docker-compose 文件
cat node/docker-compose.yml
version: '2'
services:
node-app:
image: my-node:0.0.1
container_name: node-app
volumes:
- web-data:/app
environment:
- CID=node-app
ports:
- 8888:8888
links:
- node-db
node-db:
image: mysql
container_name: node-db
volumes:
- /etc/localtime:/etc/localtime
- db-data:/var/lib/mysql
environment:
- TZ=Asia/Chongqing
- MYSQL_DATABASE=node-db
- MYSQL_USER=crm
- MYSQL_PASSWORD=MyNodePasswd
- MYSQL_ROOT_PASSWORD=MyNodePasswd
command:
--character-set-server=utf8
--collation-server=utf8_general_ci
--sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
volumes:
db-data:
driver: local
web-data:
driver: local
项目结构
tree node/
node/
├── docker-compose.yml
├── Dockerfile
└── src
└── server.js
1 directory, 3 files
创建项目
docker-compose up -d
# ...省略
Creating node-db
Creating node-app
验证
docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------
node-app node /app/server.js Up 0.0.0.0:8888->8888/tcp
node-db docker-entrypoint.sh --cha ... Up 3306/tcp
参考
- 如何使用 Docker 创建 Nodejs 容器?
- https://hub.docker.com/_/node/
- https://github.com/nodejs/docker-node/blob/master/README.md#how-to-use-this-image