157 lines
2.9 KiB
YAML
157 lines
2.9 KiB
YAML
version: '3'
|
||
services:
|
||
etcd:
|
||
image: bitnami/etcd
|
||
container_name: etcd
|
||
environment:
|
||
- TZ=${TZ}
|
||
- ALLOW_NONE_AUTHENTICATION=yes
|
||
#- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
|
||
- ETCD_ADVERTISE_CLIENT_URLS=http://127.0.0.1:2379
|
||
ports:
|
||
- "2379:2379" # 宿主机可以通过127.0.0.1:2379访问etcd服务
|
||
restart: always
|
||
|
||
etcdManage:
|
||
image: evildecay/etcdkeeper
|
||
container_name: etcdManage
|
||
environment:
|
||
- TZ=${TZ}
|
||
ports:
|
||
- "7000:8080" # 将容器的8080端口映射到宿主机的7000端口,便于web访问
|
||
depends_on:
|
||
- etcd # 确保etcd容器先启动
|
||
restart: always
|
||
zookeeper:
|
||
image: wurstmeister/zookeeper
|
||
ports:
|
||
- "2181:2181"
|
||
|
||
kafka:
|
||
image: wurstmeister/kafka
|
||
ports:
|
||
- "9092:9092"
|
||
environment:
|
||
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
|
||
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
|
||
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
||
volumes:
|
||
- /var/run/docker.sock:/var/run/docker.sock
|
||
|
||
redis:
|
||
image: redis:7.4.0
|
||
ports:
|
||
- "6379:6379"
|
||
restart: always
|
||
|
||
mysql:
|
||
image: mysql:8.0.34
|
||
environment:
|
||
- MYSQL_ROOT_PASSWORD=rootpassword
|
||
- MYSQL_DATABASE=tianyuanapi
|
||
- MYSQL_USER=tianyuanapi
|
||
- MYSQL_PASSWORD=g3h98u0291j
|
||
ports:
|
||
- "3307:3306"
|
||
volumes:
|
||
- mysql_data:/var/lib/mysql
|
||
restart: always
|
||
|
||
# Gateway service
|
||
gateway:
|
||
build:
|
||
context: .
|
||
dockerfile: ./apps/gateway/Dockerfile
|
||
ports:
|
||
- "10001:10001"
|
||
environment:
|
||
- ENV=production
|
||
depends_on:
|
||
- etcd
|
||
- redis
|
||
- mysql
|
||
- user
|
||
- sentinel
|
||
|
||
# Admin service
|
||
admin:
|
||
build:
|
||
context: .
|
||
dockerfile: ./apps/admin/Dockerfile
|
||
ports:
|
||
- "10002:10002"
|
||
environment:
|
||
- ENV=production
|
||
depends_on:
|
||
- etcd
|
||
- redis
|
||
- mysql
|
||
- user
|
||
- sentinel
|
||
|
||
# API service
|
||
api:
|
||
build:
|
||
context: .
|
||
dockerfile: ./apps/api/Dockerfile
|
||
ports:
|
||
- "10003:10003"
|
||
environment:
|
||
- ENV=production
|
||
depends_on:
|
||
- etcd
|
||
- redis
|
||
- mysql
|
||
- user
|
||
- sentinel
|
||
- mqs
|
||
- kafka
|
||
|
||
# MQS service
|
||
mqs:
|
||
build:
|
||
context: .
|
||
dockerfile: ./apps/mqs/Dockerfile
|
||
ports:
|
||
- "12001:12001"
|
||
environment:
|
||
- ENV=production
|
||
depends_on:
|
||
- kafka
|
||
- etcd
|
||
- redis
|
||
- user
|
||
- sentinel
|
||
- kafka
|
||
|
||
# Sentinel service
|
||
sentinel:
|
||
build:
|
||
context: .
|
||
dockerfile: ./apps/sentinel/Dockerfile
|
||
ports:
|
||
- "11002:11002"
|
||
environment:
|
||
- ENV=production
|
||
depends_on:
|
||
- redis
|
||
- mysql
|
||
- etcd
|
||
|
||
# User service
|
||
user:
|
||
build:
|
||
context: .
|
||
dockerfile: ./apps/user/Dockerfile
|
||
ports:
|
||
- "11001:11001"
|
||
environment:
|
||
- ENV=production
|
||
depends_on:
|
||
- mysql
|
||
- redis
|
||
- etcd
|
||
|
||
volumes:
|
||
mysql_data:
|
||
driver: local |