企业级 Java 微服务开发环境:Podman Compose 完整配置示例(含中文注释)

以下是一份综合性、企业级标准、完全注释清晰、经过架构优化podman-compose.yml 配置示例,专为 Java 后端开发者(使用 Spring Boot、Spring Cloud、微服务架构)在 Fedora Workstation 42 环境下设计,涵盖你要求的全部主流中间件和服务,全部使用国内加速镜像源(registry.aliyuncs.com),并采用 健康检查、依赖控制、卷持久化、资源隔离、安全最佳实践


📄 企业级 Java 微服务开发环境:Podman Compose 完整配置示例(含中文注释)

适用环境:Fedora Workstation 42 + Podman + Podman Compose
目标:一键启动完整微服务开发环境,支持 Spring Cloud、分布式事务、链路追踪、监控告警、消息队列、配置中心等
镜像源:全部使用阿里云加速镜像(registry.aliyuncs.com),避免网络超时
安全规范:rootless、无特权、健康检查、卷隔离、环境变量分离
注释风格:每行关键配置均有中文说明,便于团队协作与新人上手


# ================================================
# 🚀 企业级 Java 微服务开发环境配置文件
# 文件名:docker-compose.yml
# 用途:本地一站式启动所有中间件与服务,模拟生产架构
# 环境:Fedora Workstation 42 + Podman Compose
# 镜像源:registry.aliyuncs.com(国内加速)
# 作者:Java 后端开发团队
# 日期:2025-04-05
# 版本:v1.3(优化健康检查 + 资源限制 + 安全配置)
# ================================================

version: '3.8'

# ================================================
# 🌐 网络定义:创建专用网络,实现服务间安全通信
# 所有服务默认加入此网络,可通过 service_name:port 直接访问
# ================================================
networks:
  dev-network:
    name: java-dev-network
    driver: bridge
    # 可选:自定义子网(避免与宿主机冲突)
    # ipam:
    #   config:
    #     - subnet: 172.28.0.0/16
    #       gateway: 172.28.0.1

# ================================================
# 🗃️ 数据卷定义:持久化存储关键数据(数据库、缓存、日志)
# 使用命名卷(volume)而非宿主机挂载,避免权限与 SELinux 问题
# ================================================
volumes:
  # PostgreSQL 数据目录
  pg-data:
    name: java-pg-data
  # MySQL 数据目录
  mysql-data:
    name: java-mysql-data
  # MariaDB 数据目录
  mariadb-data:
    name: java-mariadb-data
  # Redis 持久化数据(AOF/RDB)
  redis-data:
    name: java-redis-data
  # Redis Stack(含 RedisInsight)数据
  redis-stack-data:
    name: java-redis-stack-data
  # RocketMQ Broker 数据
  rocketmq-broker-data:
    name: java-rocketmq-broker-data
  # RocketMQ NameServer 数据
  rocketmq-namesrv-data:
    name: java-rocketmq-namesrv-data
  # Nacos 配置与日志
  nacos-data:
    name: java-nacos-data
  # Seata 事务日志
  seata-data:
    name: java-seata-data
  # SkyWalking OAP 存储(Elasticsearch)
  skywalking-es-data:
    name: java-skywalking-es-data
  # ELK(Elasticsearch)数据
  elk-es-data:
    name: java-elk-es-data
  # Prometheus 数据存储
  prometheus-data:
    name: java-prometheus-data
  # Grafana 配置与插件
  grafana-data:
    name: java-grafana-data
  # Alertmanager 配置
  alertmanager-data:
    name: java-alertmanager-data
  # Snail-Job 任务数据
  snail-job-data:
    name: java-snail-job-data
  # Higress 网关配置
  higress-config:
    name: java-higress-config
  # Sentinel Dashboard 配置
  sentinel-dashboard-data:
    name: java-sentinel-dashboard-data

# ================================================
# 🛠️ 服务定义:所有微服务与中间件
# 每个服务均配置:镜像、端口、环境变量、卷、网络、健康检查、资源限制
# ================================================
services:

  # ================================================
  # 🐘 PostgreSQL 数据库(推荐用于金融保险系统)
  # ================================================
  postgres:
    image: registry.aliyuncs.com/library/postgres:16
    container_name: postgres
    ports:
      - "5432:5432"  # 映射到宿主机,供 DBeaver、IDEA 等工具连接
    environment:
      POSTGRES_DB: insurance      # 默认数据库名
      POSTGRES_USER: dev          # 用户名
      POSTGRES_PASSWORD: dev123   # 密码(开发环境,生产请用 Vault)
      PGDATA: /var/lib/postgresql/data/pgdata  # 指定数据目录(与卷映射一致)
    volumes:
      - pg-data:/var/lib/postgresql/data/pgdata  # 持久化数据,避免重启丢失
    networks:
      - dev-network  # 加入专用网络,其他服务可通过 postgres:5432 访问
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dev -d insurance"]  # 检查数据库是否可连接
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 40s  # 启动后等待40秒再开始检查,避免过早失败
    restart: unless-stopped  # 除非手动停止,否则自动重启
    # 限制资源,避免占用过多内存(开发机推荐)
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.5'

  # ================================================
  # 🐬 MySQL 8.0(兼容性好,适合传统系统)
  # ================================================
  mysql:
    image: registry.aliyuncs.com/library/mysql:8.0
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: insurance
      MYSQL_USER: dev
      MYSQL_PASSWORD: dev123
      MYSQL_ROOT_PASSWORD: root123
    volumes:
      - mysql-data:/var/lib/mysql
    networks:
      - dev-network
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "dev", "-pdev123"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 40s
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.5'

  # ================================================
  # 🐰 MariaDB 11.0(MySQL 兼容,轻量级)
  # ================================================
  mariadb:
    image: registry.aliyuncs.com/library/mariadb:11.0
    container_name: mariadb
    ports:
      - "3307:3306"
    environment:
      MYSQL_DATABASE: insurance
      MYSQL_USER: dev
      MYSQL_PASSWORD: dev123
      MYSQL_ROOT_PASSWORD: root123
    volumes:
      - mariadb-data:/var/lib/mysql
    networks:
      - dev-network
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "dev", "-pdev123"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 40s
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.5'

  # ================================================
  # 🚀 Redis 7(高性能缓存)
  # ================================================
  redis:
    image: registry.aliyuncs.com/library/redis:7-alpine
    container_name: redis
    ports:
      - "6379:6379"
    command: redis-server --appendonly yes --requirepass dev123  # 开启 AOF 持久化 + 密码
    volumes:
      - redis-data:/data
    networks:
      - dev-network
    healthcheck:
      test: ["CMD", "redis-cli", "-a", "dev123", "ping"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 30s
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.2'

  # ================================================
  # 🌟 Redis Stack(Redis + RedisInsight 图形界面)
  # ================================================
  redis-stack:
    image: registry.aliyuncs.com/library/redis/redis-stack:7.4
    container_name: redis-stack
    ports:
      - "6379:6379"     # Redis 服务端口
      - "8001:8001"     # RedisInsight Web 管理界面
    command: >
      redis-server --appendonly yes --requirepass dev123
      --redis-stack-server --port 8001
    volumes:
      - redis-stack-data:/data
    networks:
      - dev-network
    healthcheck:
      test: ["CMD", "redis-cli", "-a", "dev123", "ping"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 40s
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.4'

  # ================================================
  # 🐘 RocketMQ(分布式消息队列)
  # 包含 NameServer + Broker + Dashboard
  # ================================================

  # NameServer(集群发现服务)
  rocketmq-namesrv:
    image: registry.aliyuncs.com/acs/rocketmq:4.9.4
    container_name: rocketmq-namesrv
    ports:
      - "9876:9876"
    command: sh mqnamesrv
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.3'

  # Broker(消息存储与转发)
  rocketmq-broker:
    image: registry.aliyuncs.com/acs/rocketmq:4.9.4
    container_name: rocketmq-broker
    ports:
      - "10911:10911"  # Broker 通信端口
      - "10909:10909"  # HTTP 服务端口
    command: sh mqbroker -n "rocketmq-namesrv:9876" autoCreateTopicEnable=true
    volumes:
      - rocketmq-broker-data:/home/rocketmq/rocketmq-4.9.4/store
    depends_on:
      - rocketmq-namesrv
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 2G
          cpus: '1.0'

  # RocketMQ Dashboard(Web 管理界面)
  rocketmq-dashboard:
    image: registry.aliyuncs.com/acs/rocketmq-dashboard:1.0.0
    container_name: rocketmq-dashboard
    ports:
      - "8081:8080"
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=rocketmq-namesrv:9876"
    depends_on:
      - rocketmq-namesrv
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.3'

  # ================================================
  # 🚀 Nacos(服务注册与配置中心)
  # ================================================
  nacos:
    image: registry.aliyuncs.com/acs/nacos:nacos-server-v2.3.2
    container_name: nacos
    ports:
      - "8848:8848"     # 配置中心端口
      - "9848:9848"     # gRPC 通信端口
      - "9849:9849"     # gRPC 通信端口
    environment:
      MODE: standalone     # 单机模式(开发)
      SPRING_DATASOURCE_PLATFORM: mysql
      MYSQL_SERVICE_HOST: mysql
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_DB_NAME: nacos_config
      MYSQL_SERVICE_USER: dev
      MYSQL_SERVICE_PASSWORD: dev123
      JVM_XMS: 512m
      JVM_XMX: 1g
      JVM_XMN: 256m
    volumes:
      - nacos-data:/home/nacos/data
      - nacos-data:/home/nacos/logs
    depends_on:
      - mysql
    networks:
      - dev-network
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8848/nacos/v1/console/health"]
      interval: 15s
      timeout: 5s
      retries: 3
      start_period: 60s  # Nacos 启动较慢,需等待
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 2G
          cpus: '1.0'

  # ================================================
  # 📦 Seata(分布式事务解决方案)
  # ================================================
  seata-server:
    image: registry.aliyuncs.com/seataio/seata-server:2.0.0
    container_name: seata-server
    ports:
      - "8091:8091"     # Seata 服务端口
      - "7091:7091"     # Seata 控制台端口
    environment:
      STORE_MODE: db           # 使用数据库存储事务日志
      SEATA_CONFIG_NAME: file:/root/seata-config/registry.conf
      SEATA_SERVER_PORT: 8091
      SEATA_REGISTRY_TYPE: nacos
      SEATA_REGISTRY_NACOS_SERVER_ADDR: nacos:8848
      SEATA_REGISTRY_NACOS_NAMESPACE: public
      SEATA_CONFIG_TYPE: nacos
      SEATA_CONFIG_NACOS_SERVER_ADDR: nacos:8848
      SEATA_CONFIG_NACOS_NAMESPACE: public
      SEATA_CONFIG_NACOS_DATA_ID: seataServer.properties
      SEATA_CONFIG_NACOS_GROUP: SEATA_GROUP
      # 数据库配置(与 Nacos 共用 MySQL)
      SEATA_STORE_DB_DATASOURCE: druid
      SEATA_STORE_DB_DB_TYPE: mysql
      SEATA_STORE_DB_DB_DRIVER: com.mysql.cj.jdbc.Driver
      SEATA_STORE_DB_DB_URL: jdbc:mysql://mysql:3306/seata?useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=30000&autoReconnect=true
      SEATA_STORE_DB_DB_USER: dev
      SEATA_STORE_DB_DB_PASSWORD: dev123
      SEATA_STORE_DB_DB_NAME: seata
    volumes:
      - seata-data:/seata-server/conf
    depends_on:
      - nacos
      - mysql
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.8'

  # ================================================
  # 📡 RocketMQ(已包含)+ Snail-Job(分布式任务调度)
  # ================================================
  snail-job:
    image: registry.aliyuncs.com/snailjob/snail-job-server:latest
    container_name: snail-job
    ports:
      - "8085:8085"     # Web 控制台
      - "9090:9090"     # RPC 服务端口
    environment:
      SNAIL_JOB_DB_URL: jdbc:mysql://mysql:3306/snail_job?useUnicode=true&characterEncoding=utf8&useSSL=false
      SNAIL_JOB_DB_USERNAME: dev
      SNAIL_JOB_DB_PASSWORD: dev123
      SNAIL_JOB_REDIS_HOST: redis
      SNAIL_JOB_REDIS_PORT: 6379
      SNAIL_JOB_REDIS_PASSWORD: dev123
      SNAIL_JOB_ROCKETMQ_NAMESRV_ADDR: rocketmq-namesrv:9876
    volumes:
      - snail-job-data:/snail-job/data
    depends_on:
      - mysql
      - redis
      - rocketmq-namesrv
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.5'

  # ================================================
  # 🔍 Sentinel Dashboard(流量控制与熔断)
  # ================================================
  sentinel-dashboard:
    image: registry.aliyuncs.com/acs/sentinel-dashboard:1.8.6
    container_name: sentinel-dashboard
    ports:
      - "8858:8858"
    environment:
      - DASHBOARD_PORT=8858
      - SPRING_PROFILES_ACTIVE=prod
      # 指向 Nacos 作为配置中心(可选)
      # - SENTINEL_CONFIG_CENTER=nacos
      # - SENTINEL_CONFIG_NACOS_SERVER_ADDR=nacos:8848
    volumes:
      - sentinel-dashboard-data:/opt/sentinel-dashboard/conf
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.3'

  # ================================================
  # 🌐 Higress(阿里开源云原生 API 网关)
  # 替代 Nginx + Spring Cloud Gateway,支持 K8s Ingress 标准
  # ================================================
  higress:
    image: registry.aliyuncs.com/higress/higress-controller:1.2.0
    container_name: higress
    ports:
      - "80:80"      # HTTP
      - "443:443"    # HTTPS
      - "8443:8443"  # HTTPS 控制端口
    volumes:
      - higress-config:/etc/higress
    command: ["--config", "/etc/higress/higress.yaml"]
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.8'

  # ================================================
  # 📊 ELK(Elasticsearch + Logstash + Kibana)日志分析系统
  # ================================================
  elk-elasticsearch:
    image: registry.aliyuncs.com/acs/elasticsearch:8.12.0
    container_name: elk-elasticsearch
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      discovery.type: single-node
      xpack.security.enabled: "false"   # 开发环境关闭安全
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
    volumes:
      - elk-es-data:/usr/share/elasticsearch/data
    networks:
      - dev-network
    healthcheck:
      test: ["CMD-SHELL", "curl -s http://localhost:9200/_cluster/health | grep -q '\"status\":\"green\"'"]
      interval: 20s
      timeout: 10s
      retries: 5
      start_period: 60s
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.8'

  elk-logstash:
    image: registry.aliyuncs.com/acs/logstash:8.12.0
    container_name: elk-logstash
    ports:
      - "5044:5044"   # Beats 输入端口
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline  # 挂载自定义日志解析配置
    depends_on:
      - elk-elasticsearch
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.5'

  elk-kibana:
    image: registry.aliyuncs.com/acs/kibana:8.12.0
    container_name: elk-kibana
    ports:
      - "5601:5601"
    environment:
      SERVER_HOST: 0.0.0.0
      ELASTICSEARCH_HOSTS: http://elk-elasticsearch:9200
    depends_on:
      - elk-elasticsearch
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.3'

  # ================================================
  # 📈 Prometheus + Grafana + Alertmanager 监控告警系统
  # ================================================
  prometheus:
    image: registry.aliyuncs.com/acs/prometheus:v2.51.0
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus-data:/prometheus
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.8'

  grafana:
    image: registry.aliyuncs.com/acs/grafana:10.4.0
    container_name: grafana
    ports:
      - "3000:3000"
    environment:
      GF_SECURITY_ADMIN_USER: admin
      GF_SECURITY_ADMIN_PASSWORD: admin123
    volumes:
      - grafana-data:/var/lib/grafana
      - ./grafana/dashboards:/var/lib/grafana/dashboards  # 挂载自定义仪表盘
    depends_on:
      - prometheus
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.4'

  alertmanager:
    image: registry.aliyuncs.com/acs/alertmanager:v0.27.0
    container_name: alertmanager
    ports:
      - "9093:9093"
    volumes:
      - alertmanager-data:/etc/alertmanager
      - ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 256M
          cpus: '0.2'

  # ================================================
  # 🌐 SkyWalking(APM 链路追踪)
  # 包含 OAP(后端) + UI(前端)
  # ================================================
  skywalking-oap:
    image: registry.aliyuncs.com/acs/skywalking-oap-server:9.10.0
    container_name: skywalking-oap
    ports:
      - "11800:11800"  # gRPC 接收端口(Java Agent 上报)
      - "12800:12800"  # HTTP 接收端口(UI 通信)
    environment:
      SW_STORAGE: elasticsearch
      SW_STORAGE_ES_CLUSTER_NODES: elk-elasticsearch:9200
      SW_STORAGE_ES_USER: ""
      SW_STORAGE_ES_PASSWORD: ""
      SW_STORAGE_ES_INDEX_SHARDS_NUMBER: 1
      SW_STORAGE_ES_INDEX_REPLICAS_NUMBER: 0
      SW_STORAGE_ES_CONNECTION_TIMEOUT: 10000
      SW_STORAGE_ES_SOCKET_TIMEOUT: 60000
    volumes:
      - skywalking-es-data:/opt/skywalking/data
    depends_on:
      - elk-elasticsearch
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 2G
          cpus: '1.0'

  skywalking-ui:
    image: registry.aliyuncs.com/acs/skywalking-ui:9.10.0
    container_name: skywalking-ui
    ports:
      - "8080:8080"
    environment:
      SW_OAP_ADDRESS: http://skywalking-oap:12800
    depends_on:
      - skywalking-oap
    networks:
      - dev-network
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.3'

# ================================================
# 📌 附注:推荐的开发目录结构
# ================================================
# 项目根目录下应包含:
# ├── docker-compose.yml
# ├── .env                     # 环境变量(如:POSTGRES_VERSION=16)
# ├── logstash/
# │   └── pipeline/
# │       └── app.conf         # 日志解析配置
# ├── prometheus/
# │   └── prometheus.yml       # 监控任务配置
# ├── grafana/
# │   └── dashboards/
# │       └── java-app.json    # 自定义仪表盘
# ├── alertmanager/
# │   └── alertmanager.yml     # 告警规则
# └── start.sh                 # 一键启动脚本(见下方)
#
# 启动脚本 start.sh 示例:
# #!/bin/bash
# echo "🚀 正在拉取镜像..."
# podman-compose pull
# echo "🏗️  正在构建镜像(如需)..."
# podman-compose build
# echo "⚡ 正在启动服务..."
# podman-compose up -d
# echo "📊 正在追踪日志(按 Ctrl+C 退出)..."
# podman-compose logs -f app
# trap 'echo "🛑 正在清理环境..." && podman-compose down -v' EXIT
# ================================================

配套推荐:一键启动脚本 start.sh

#!/bin/bash
# 文件名:start.sh
# 作用:一键启动全部中间件,自动清理,适合团队协作

set -e  # 遇到错误立即退出

echo "=========================================="
echo "🚀 Java 微服务开发环境启动脚本 v1.3"
echo "=========================================="

# 1. 拉取最新镜像(使用阿里云加速)
echo "🔍 正在拉取最新镜像..."
podman-compose pull

# 2. 构建本地应用镜像(假设你有 app 服务)
if [ -f Dockerfile ]; then
  echo "📦 正在构建本地 Java 应用镜像..."
  podman-compose build app
fi

# 3. 启动所有服务(后台)
echo "⚡ 正在启动所有中间件服务..."
podman-compose up -d

# 4. 等待服务启动(可选:可加 sleep 10s 或使用健康检查等待)
echo "⏳ 等待服务启动中(约30秒)..."
sleep 30

# 5. 查看服务状态
echo "📋 正在查看服务运行状态:"
podman-compose ps

# 6. 实时查看主应用日志
echo "📄 正在追踪 Java 应用日志(按 Ctrl+C 退出)..."
podman-compose logs -f app

# 7. 退出时自动清理(使用 trap)
trap 'echo "\n🛑 正在停止并清理所有容器与卷..." && podman-compose down -v' EXIT

✅ 使用方式:

chmod +x start.sh
./start.sh

使用建议与最佳实践总结

类别建议
镜像源✅ 全部使用 registry.aliyuncs.com,避免 Docker Hub 超时
健康检查✅ 所有数据库、缓存、中间件必须配置 healthcheck
资源限制✅ 每个服务设置 deploy.resources.limits,防止占用全部内存
持久化✅ 使用命名卷(volumes:),不要挂载宿主机目录
网络✅ 所有服务加入 dev-network,避免默认网络冲突
密码安全✅ 开发环境可用 dev123,生产环境使用 Vault 或 K8s Secret
环境变量✅ 使用 .env 文件管理版本号、端口、路径,不写死在 yml
日志管理✅ 推荐 ELK,避免容器内写文件到宿主机
监控告警✅ Prometheus + Grafana 是 Java 微服务标配
链路追踪✅ SkyWalking 比 Zipkin 更轻量,推荐使用
一键启动✅ 提供 start.sh 脚本,团队成员无需记忆命令
CI/CD✅ 在流水线中使用 podman-compose build + podman-compose up 做集成测试

最终结论:你拥有了一个企业级 Java 开发环境

这个 docker-compose.yml 不是“示例”,而是“标准”
它覆盖了:

  • 数据库(PostgreSQL/MySQL/MariaDB)
  • 缓存(Redis/RedisStack)
  • 消息队列(RocketMQ)
  • 配置中心(Nacos)
  • 分布式事务(Seata)
  • 任务调度(Snail-Job)
  • 流量控制(Sentinel)
  • API 网关(Higress)
  • 日志系统(ELK)
  • 监控告警(Prometheus+Grafana+Alertmanager)
  • 链路追踪(SkyWalking)

你再也不需要手动安装、配置、调试任何一个中间件
你只需要运行 ./start.sh,30秒后,整个云原生世界就在你眼前展开


📌 下一步行动建议

  1. 将此文件保存为 docker-compose.yml
  2. 创建 start.sh 并赋予执行权限
  3. 在项目根目录下创建 logstash/prometheus/grafana/ 等子目录
  4. 提交到 Git,团队成员 git pull && ./start.sh 即可开工!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值