mysql、redis、rabbitmq
version: '3.8'
services:
mysql:
image: mysql:8.0.33
container_name: common-mysql8
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: my
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
#platform: linux/arm64
platform: linux/amd64
restart: always
redis:
image: redis:6.2.12
container_name: common-redis6
ports:
- "6379:6379"
volumes:
- redis_data:/data
environment:
TZ: Asia/Shanghai
#command: ["redis-server", "--requirepass", "yourpassword"] # 直接在启动命令中写死密码
#platform: linux/arm64
platform: linux/amd64
restart: always
rabbitmq:
image: rabbitmq:management
container_name: rabbitmq-container
environment:
- RABBITMQ_DEFAULT_USER=YOURUSERNAME
- RABBITMQ_DEFAULT_PASS=YOURPASSWORD
ports:
- "5672:5672" # AMQP 端口
- "15672:15672" # RabbitMQ 管理界面端口
volumes:
mysql_data:
redis_data:
minio
services:
minio:
image: minio/minio:latest
container_name: minio
environment:
MINIO_ROOT_USER: "minioadmin" # 管理员用户名
MINIO_ROOT_PASSWORD: "minioadmin" # 管理员密码
ports:
- "9000:9000" # MinIO API 端口
- "9001:9001" # MinIO 控制台端口
volumes:
- ./minio_data:/data # 持久化存储
command: server /data --console-address ":9001"
restart: unless-stopped
nsq
services:
# 服务发现组件 nsqlookupd
nsqlookupd:
image: nsqio/nsq # 使用官方 NSQ 镜像
command: /nsqlookupd # 启动命令,运行 nsqlookupd 服务,用于服务发现
ports:
- "4160:4160" # 映射 4160 端口,用于 TCP 连接,让 nsqd 可以注册自己
- "4161:4161" # 映射 4161 端口,用于 HTTP 连接,供管理工具和消费者发现服务
# 消息队列核心组件 nsqd
nsqd:
image: nsqio/nsq # 使用官方 NSQ 镜像
command: /nsqd --lookupd-tcp-address=nsqlookupd:4160 # 启动 nsqd,指定 nsqlookupd 地址,供 nsqd 注册
depends_on:
- nsqlookupd # 指定依赖关系,确保 nsqlookupd 服务先启动
ports:
- "4150:4150" # 映射 4150 端口,供消费者通过 TCP 连接订阅消息
- "4151:4151" # 映射 4151 端口,供生产者通过 HTTP 连接发布消息
# 管理界面组件 nsqadmin
nsqadmin:
image: nsqio/nsq # 使用官方 NSQ 镜像
command: /nsqadmin --lookupd-http-address=nsqlookupd:4161 # 启动 nsqadmin,连接到 nsqlookupd 的 HTTP 地址
depends_on:
- nsqlookupd # 指定依赖关系,确保 nsqlookupd 服务先启动
ports:
- "4171:4171" # 映射 4171 端口,通过 HTTP 提供管理界面访问