跳转至

如何使用 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

参考

回到页面顶部