Docker Compose 模板文件

513 阅读1分钟

一、介绍

  由于业务服务依赖 MySQL 等环境依赖,所以需要拆分 2 套 Docker Compose 的配置文件,分别为 docker-compose.env.yml 环境配置和 docker-compose.service.yml 业务服务配置,保证先成功启动依赖,再启动服务。depends_on配置,也能决定服务的启动顺序。但是千万注意,depends_on 并不会等待服务完全就绪,只是确保它们在启动时的顺序,并不稳定。

二、示例

docker-compose.env.yml

version: '3'

services:  
  mysql:  
    image: mysql:8 # 使用的镜像  
    container_name: yuoj-mysql # 启动的实例名称  
    environment:  
      MYSQL_ROOT_PASSWORD: root # root 用户密码  
    ports:  
      - "3306:3306" # 端口映射  
    volumes:  
      - ./.mysql-data:/var/lib/mysql # 将数据目录挂载到本地目录以进行持久化  
      - ./mysql-init:/docker-entrypoint-initdb.d # 启动脚本  
    restart: always # 崩溃后自动重启  
    networks:  
      - mynetwork # 指定网络  
      
  redis:  
    image: redis:6  
    container_name: yuoj-redis  
    ports:  
      - "6379:6379"  
    networks:  
      - mynetwork  
    volumes:  
      - ./.redis-data:/data # 持久化  
      
  rabbitmq:  
    image: rabbitmq:3.12.6-management # 支持管理面板的消息队列  
    container_name: yuoj-rabbitmq  
    environment:  
      RABBITMQ_DEFAULT_USER: guest  
      RABBITMQ_DEFAULT_PASS: guest  
    ports:  
      - "5672:5672"  
      - "15672:15672" # RabbitMQ Dashboard 端口  
    volumes:  
      - ./.rabbitmq-data:/var/lib/rabbitmq # 持久化  
    networks:  
      - mynetwork  
      
  nacos:  
    image: nacos/nacos-server:v2.2.0-slim  
    container_name: yuoj-nacos  
    ports:  
      - "8848:8848"  
    volumes:  
      - ./.nacos-data:/home/nacos/data  
    networks:  
      - mynetwork  
    environment:  
      - MODE=standalone # 单节点模式启动  
      - PREFER_HOST_MODE=hostname # 支持 hostname  
      - TZ=Asia/Shanghai # 控制时区