6
0

各个compose

2025-12-04
2026-09-07

Elasticsearch

version: '3.8'

services:
  elasticsearch:
    image: docker.1ms.run/library/elasticsearch:8.19.5
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-cluster
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"   # 建议至少 2G
      - xpack.security.enabled=false    # 彻底禁用安全认证
      - xpack.security.http.ssl.enabled=false
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es-data:/usr/share/elasticsearch/data
      - /dpanel/compose/es/plugins/ik:/usr/share/elasticsearch/plugins/ik
    ports:
      - "9200:9200"
      - "9300:9300"

  kibana:
    image: docker.1ms.run/library/kibana:8.19.5
    container_name: kibana01
    depends_on:
      - elasticsearch
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200  # 不需要用户名密码
    ports:
      - "5601:5601"

volumes:
  es-data:

Jenkins

services:
  jenkins:
    # 镜像地址(直接使用你提供的华为云 SWR 地址)
    image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/jenkins/jenkins:lts-jdk21
    container_name: jenkins-jdk21  # 容器名称,便于管理
    restart: always  # 容器退出时自动重启(故障自愈)
    privileged: true  # 授予特权(解决宿主机文件挂载权限问题)
    user: root  # 使用 root 用户运行(避免 Jenkins 内部权限不足)
    ports:
      - "8009:8080"  # Web 访问端口(宿主机:容器)
      - "50000:50000"  # 代理节点通信端口(Jenkins 主从架构必备)
    environment:
      - TZ=Asia/Shanghai  # 时区同步(避免日志/构建时间混乱)
      - JAVA_OPTS=-Xms512m
      - JAVA_OPTS=-Xmx1024m
    volumes:
      # 挂载宿主机 Docker 客户端(允许 Jenkins 内部构建 Docker 镜像)
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - jenkins_network  # 独立网络,隔离其他服务

# 自定义网络(推荐,避免端口冲突和网络混乱)
networks:
  jenkins_network:
    driver: bridge

nacos

version: "2"  # 版本2兼容所有Docker Compose环境,无需修改
services:
  nacos:
    image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.5.1
    container_name: nacos-standalone
    environment:
      - PREFER_HOST_MODE=hostname  # 原有配置:优先使用主机名(无需改)
      - MODE=standalone  # 原有配置:单机模式(核心,必须保留)
      - NACOS_AUTH_ENABLE=true  # 原有配置:启用认证(必须保留)
      - NACOS_AUTH_IDENTITY_KEY=serverIdentity  # 原有认证密钥(无需改)
      - NACOS_AUTH_IDENTITY_VALUE=security  # 原有认证值(无需改)
      - NACOS_AUTH_TOKEN=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=  # 原有认证Token(无需改)
      # 新增:降低JVM内存(解决Exited 137问题,适配多服务共存场景)
      - JVM_XMS=256m  # 初始堆内存:256MB(轻量,避免内存不足)
      - JVM_XMX=256m  # 最大堆内存:256MB(与初始一致,避免内存波动)
      - JVM_XMN=128m  # 年轻代内存:128MB(堆内存的1/2,性能最优)
    volumes:
      - ./standalone-data/:/home/nacos/data 
      - ./standalone-logs/:/home/nacos/logs  # 原有配置:日志挂载(便于排查问题,保留)
    ports:
      - "8848:8848"  # 原有配置:Nacos核心端口(访问用,必须保留)
      - "9848:9848"  # 原有配置:Nacos客户端通信端口(微服务连接用,保留)

rabbitmq

version: '3.8'

services:
  rabbitmq:
    image: rabbitmq:3-management
    container_name: rabbitmq
    restart: always
    ports:
      - "5672:5672"    # RabbitMQ 消息端口
      - "15672:15672"  # Web 管理界面端口
    environment:
      RABBITMQ_DEFAULT_USER: guest
      RABBITMQ_DEFAULT_PASS: guest
    volumes:
      - ./data/rabbitmq:/var/lib/rabbitmq

rocketmq

version: '3.8'

services:
  rocketmq-namesrv:
    image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/rocketmq:5.3.3
    container_name: rocketmq-namesrv
    restart: always
    ports:
      - "9876:9876"
    environment:
      # ⚠️ 调整 NameServer 内存到 512m
      - JAVA_OPT_EXT=-Xms512m -Xmx512m
    command: sh mqnamesrv

  rocketmq-broker:
    image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/rocketmq:5.3.3
    container_name: rocketmq-broker
    restart: always
    ports:
      - "10909:10909"
      - "10911:10911"
      - "10912:10912"
    environment:
      - JAVA_OPT_EXT=-Xms512m -Xmx512m -Xmn256m
      - NAMESRV_ADDR=rocketmq-namesrv:9876
      - BROKER_IP1=115.190.229.116
      - BROKER_CLUSTER_NAME=DefaultCluster
      - BROKER_NAME=broker-a
    ulimits: # 👈 建议也为 Broker 增加文件描述符限制
      nofile:
        soft: 65535
        hard: 65535
    volumes:
      - ./broker.conf:/home/rocketmq/rocketmq-5.3.3/conf/broker.conf
    depends_on:
      - rocketmq-namesrv
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.3.3/conf/broker.conf

  rocketmq-dashboard:
    image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apacherocketmq/rocketmq-dashboard:latest
    container_name: rocketmq-dashboard
    restart: always
    ports:
      - "8080:8080"
    environment:
      - NAMESRV_ADDR=rocketmq-namesrv:9876
      # 🚀 解决内存不足:设置 Dashboard 的 JVM 堆内存
      - JAVA_OPTS=-Xmx512m -Xms512m
    ulimits:
      # 🚀 解决文件描述符不足:设置容器的文件描述符上限
      nofile:
        soft: 65535
        hard: 65535
    depends_on:
      - rocketmq-namesrv
      - rocketmq-broker

broker.conf

# broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH

# 监听端口配置
listenPort = 10911
brokerIP1=115.190.229.116

# 名称服务器地址
namesrvAddr=rocketmq-namesrv:9876

# 存储路径
storePathRootDir=/home/rocketmq/store
storePathCommitLog=/home/rocketmq/store/commitlog
storePathConsumeQueue=/home/rocketmq/store/consumequeue
storePathIndex=/home/rocketmq/store/index

# 内存映射配置
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000

# 消息大小限制
maxMessageSize=65536

# 自动创建主题
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true

rustfs

services:
  rustfs:
    image: rustfs/rustfs:latest
    container_name: rustfs-server
    security_opt:
      - "no-new-privileges:true"
    ports:
      - "9000:9000"   # S3 API 对外端口
      - "9001:9001"   # 控制台对外端口
    environment:
      - RUSTFS_VOLUMES=/data/rustfs0  # 数据卷(多个路径用逗号分隔)
      - RUSTFS_ADDRESS=0.0.0.0:9000   # API 监听地址
      - RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001  # 控制台监听地址
      - RUSTFS_CONSOLE_ENABLE=true    # 启用控制台
      - RUSTFS_CORS_ALLOWED_ORIGINS=* # API CORS 允许所有来源(生产环境建议限制具体域名)
      - RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS=* # 控制台 CORS 允许所有来源
      - RUSTFS_ACCESS_KEY=rustfsadmin # 访问密钥(生产环境务必修改为强密码!)
      - RUSTFS_SECRET_KEY=rustfsadmin # 密钥(生产环境修改!)
      - RUSTFS_LOG_LEVEL=info         # 日志级别
    volumes:
      - ./deploy/data/pro:/data       # 数据存储目录(宿主机路径可自定义,确保有读写权限)
      - ./deploy/logs:/app/logs       # 日志目录
    # 删掉 networks 配置(自动加入 default 网络)
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "sh", "-c", "curl -f http://localhost:9000/health || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    privileged: false # 禁用特权模式(增强安全性)

xxljob

version: '3.8'

services:
  xxl-job-admin:
    image: xxljob:v1  # 你的本地镜像
    container_name: xxl-job
    restart: always
    ports:
      - "8888:8888"  # 主机8888端口映射容器8080端口(容器内端口若修改需同步调整)
    environment:
      # 核心数据库配置(替换为你的实际 MySQL 信息)
      - SPRING_DATASOURCE_URL=jdbc:mysql://115.190.229.116:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
      - SPRING_DATASOURCE_USERNAME=root  # 如 root(必填)
      - SPRING_DATASOURCE_PASSWORD=jiang2004526    # 如 123456(必填)
      - SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver  # MySQL 8.0+ 驱动
      # 可选:XXL-Job 访问令牌(生产环境建议设置)
      - XXL_JOB_ACCESS_TOKEN=  # 为空则关闭,需开启则填写自定义令牌
    volumes:
      - ./xxl-job-logs:/data/applogs  # 持久化 XXL-Job 日志(可选,便于排查问题)
各个compose
/archives/020-ge-ge-compose
作者
Administrator
发布于
2025-12-04
许可协议
CC BY-NC-SA 4.0

评论