Docker部署全栈:六、部署Nginx和React

Docker部署全栈项目:七、Docker-Compose

完整的 docker-compose.yml 如下:

version: '3'

services:
  mongo:
    container_name: 'luokaiii-mongo'
    image: 'mongo:4.0.12'
    volumes:
      - mongodata:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: mongoadmin
      MONGO_INITDB_ROOT_PASSWORD: password
    restart: always
    expose:
      - '27017'
  mariadb:
    container_name: 'luokaiii-mysql'
    image: 'mariadb:10.4.8'
    volumes:
      - './mysql/data/:/var/lib/mysql'
      - './mysql/conf/local.cnf:/etc/mysql/conf.d/local.cnf'
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: db_user
    command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
    restart: always
    expose:
      - '3306'
  redis:
    container_name: 'luokaiii-redis'
    image: 'redis:4.0.14'
    volumes:
      - './redis/data:/data'
    command: redis-server --requirepass password
    restart: always
    expose:
      - '6379'
  api:
    container_name: 'luokaiii-api'
    depends_on:
      - mongo
      - redis
      - mariadb
    image: 'luokaiii-api:latest'
    ports:
      - '8080:8080'
    restart: always
  nginx:
    container_name: 'luokaiii-nginx'
    depends_on:
      - api
    image: 'nginx:alpine'
    volumes:
      - './nginx/conf:/etc/nginx/conf.d'
      - './nginx/html:/usr/www/luokaiii/cn/html'
    ports:
      - '80:80'
    restart: always
volumes:
  mongodata:

部署后的效果如下:

Docker单机服务

至此,整个项目在Docker上的部署已经完成。

如果有需要,您也可以将 MongoDB、Redis、MySQL等服务暴露给宿主机,以供外部连接。

项目地址

文章作者: koral
文章链接: http://luokaiii.github.io/2019/09/18/读书笔记/《Docker全栈项目部署》/7.Docker-Compose/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自