version: '3' # 网桥 -> 方便相互通讯 networks: smallboot: ipam: driver: default config: - subnet: "172.28.0.0/24" services: mysql: image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mysql:5.7 # 原镜像`mysql:5.7` container_name: mysql5.7 # 容器名 restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器 volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 - "./mysql5.7/my.cnf:/etc/mysql/my.cnf" - "./mysql5.7/data:/var/lib/mysql" # - "./mysql5.7/conf.d:/etc/mysql/conf.d" - "./mysql5.7/log/mysql/error.log:/var/log/mysql/error.log" - "./mysql5.7/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d" # 可执行初始化sql脚本的目录 -- tips:`/var/lib/mysql`目录下无数据的时候才会执行(即第一次启动的时候才会执行) environment: # 设置环境变量,相当于docker run命令中的-e TZ: Asia/Shanghai LANG: en_US.UTF-8 MYSQL_ROOT_PASSWORD: root # 设置root用户密码 MYSQL_DATABASE: demo # 初始化的数据库名称 ports: # 映射端口 - "3306:3306" hostname: mysql networks: smallboot: ipv4_address: 172.28.0.10 # ---------------------------------------------------------------------------------------------------------------------------- redis: image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:7.0.5 # 镜像'redis:7.0.5' container_name: redis # 容器名为'redis' restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器 command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置 # command: redis-server --requirepass 123456 --appendonly yes # 启动redis服务并添加密码为:123456,并开启redis持久化配置 environment: # 设置环境变量,相当于docker run命令中的-e TZ: Asia/Shanghai LANG: en_US.UTF-8 volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 - "./redis/data:/data" - "./redis/config/redis.conf:/etc/redis/redis.conf" # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf` ports: # 映射端口 - "9379:6379" networks: smallboot: ipv4_address: 172.28.0.11 # ---------------------------------------------------------------------------------------------------------------------------- minio: image: registry.cn-hangzhou.aliyuncs.com/zhengqing/minio:RELEASE.2023-01-02T09-40-09Z # 原镜像`minio/minio:RELEASE.2023-01-02T09-40-09Z` container_name: minio # 容器名为'minio' restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器 volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 - "./minio/data:/mnt/data" # 数据 - "./minio/config/config.env:/etc/config.env" # 配置文件 environment: # 设置环境变量,相当于docker run命令中的-e TZ: Asia/Shanghai LANG: en_US.UTF-8 MINIO_CONFIG_ENV_FILE: "/etc/config.env" command: server --console-address ":9090" ports: # 映射端口 - "9001:9000" - "9090:9090" networks: smallboot: ipv4_address: 172.28.0.12 # ---------------------------------------------------------------------------------------------------------------------------- api: image: registry.cn-hangzhou.aliyuncs.com/zhengqingya/smallboot-api:prod container_name: api restart: unless-stopped volumes: - "./smallboot/logs:/logs" environment: TZ: Asia/Shanghai LANG: en_US.UTF-8 server.port: 888 JAVA_OPTS: -XX:+UseG1GC spring.profiles.active: prod # smallboot.ip: 127.0.0.1 ports: - "888:888" depends_on: - mysql - redis - minio networks: smallboot: ipv4_address: 172.28.0.13 mem_limit: 3000m # ---------------------------------------------------------------------------------------------------------------------------- web: image: registry.cn-hangzhou.aliyuncs.com/zhengqingya/smallboot-web:prod container_name: web restart: always environment: TZ: Asia/Shanghai LANG: en_US.UTF-8 ports: - "80:80" depends_on: - mysql - redis - minio - api networks: smallboot: ipv4_address: 172.28.0.15