hy-app-monitor/localbox/local-services.compose.yml
2026-05-17 14:08:31 +08:00

359 lines
10 KiB
YAML

name: chatapp3-local
x-env-file: &env-file
env_file:
- ./.env.local
x-java-environment: &java-environment
JAVA_OPTS: ${LIKEI_LOCAL_JAVA_OPTS:--Xms128m -Xmx512m}
FEIGN_GATEWAY_URL: http://gateway:1100
FEIGN_AUTH_URL: http://auth:1000
FEIGN_WALLET_URL: http://wallet:2000
FEIGN_OTHER_URL: http://other:2400
FEIGN_LIVE_URL: http://live:2500
FEIGN_ORDER_URL: http://order:2600
FEIGN_CONSOLE_URL: http://console:2700
FEIGN_EXTERNAL_URL: http://external:3000
x-java-service: &java-service
<<: *env-file
image: eclipse-temurin:17-jre
restart: unless-stopped
working_dir: /app
environment:
<<: *java-environment
command:
- sh
- -c
- java $$JAVA_OPTS -jar /app/app.jar
networks:
- localnet
services:
mysql:
<<: *env-file
image: mysql:8.4
container_name: chatapp3-local-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${LIKEI_LOCAL_MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${LIKEI_LOCAL_MYSQL_DATABASE}
TZ: ${TZ}
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --default-time-zone=+08:00
- --mysql-native-password=ON
ports:
- "${LIKEI_LOCAL_MYSQL_EXPOSE_PORT}:3306"
volumes:
- chatapp3-local-mysql-data:/var/lib/mysql
- ./local-infra/mysql/init:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -uroot -p${LIKEI_LOCAL_MYSQL_ROOT_PASSWORD} --silent"]
interval: 5s
timeout: 5s
retries: 30
networks:
- localnet
redis:
<<: *env-file
image: redis:7-alpine
container_name: chatapp3-local-redis
restart: unless-stopped
command: ["redis-server", "--appendonly", "yes"]
ports:
- "${LIKEI_LOCAL_REDIS_EXPOSE_PORT}:6379"
volumes:
- chatapp3-local-redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 30
networks:
- localnet
mongo:
<<: *env-file
image: mongo:7.0
container_name: chatapp3-local-mongo
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: ${LIKEI_LOCAL_MONGO_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${LIKEI_LOCAL_MONGO_ROOT_PASSWORD}
TZ: ${TZ}
ports:
- "${LIKEI_LOCAL_MONGO_EXPOSE_PORT}:27017"
volumes:
- chatapp3-local-mongo-data:/data/db
healthcheck:
test:
[
"CMD-SHELL",
"mongosh --quiet mongodb://${LIKEI_LOCAL_MONGO_ROOT_USERNAME}:${LIKEI_LOCAL_MONGO_ROOT_PASSWORD}@127.0.0.1:27017/admin --eval 'db.runCommand({ ping: 1 }).ok' | grep -q 1",
]
interval: 5s
timeout: 5s
retries: 30
networks:
- localnet
nacos:
<<: *env-file
image: nacos/nacos-server:v2.4.0
container_name: chatapp3-local-nacos
restart: unless-stopped
environment:
MODE: standalone
PREFER_HOST_MODE: hostname
TZ: ${TZ}
NACOS_AUTH_ENABLE: ${LIKEI_LOCAL_NACOS_AUTH_ENABLE}
JVM_XMS: ${LIKEI_LOCAL_NACOS_JVM_XMS}
JVM_XMX: ${LIKEI_LOCAL_NACOS_JVM_XMX}
JVM_XMN: ${LIKEI_LOCAL_NACOS_JVM_XMN}
ports:
- "${LIKEI_LOCAL_NACOS_PORT}:8848"
- "${LIKEI_LOCAL_NACOS_CONSOLE_PORT}:8080"
- "${LIKEI_LOCAL_NACOS_CLIENT_GRPC_PORT}:9848"
networks:
- localnet
zookeeper:
<<: *env-file
image: zookeeper:3.9
container_name: chatapp3-local-zookeeper
restart: unless-stopped
environment:
TZ: ${TZ}
ports:
- "${LIKEI_LOCAL_ZOOKEEPER_EXPOSE_PORT}:2181"
networks:
- localnet
rocketmq-namesrv:
<<: *env-file
image: apache/rocketmq:${LIKEI_LOCAL_ROCKETMQ_IMAGE_TAG:-5.3.2}
container_name: chatapp3-local-rocketmq-namesrv
restart: unless-stopped
command: ["sh", "mqnamesrv"]
environment:
TZ: ${TZ}
JAVA_OPT_EXT: ${LIKEI_LOCAL_ROCKETMQ_NAMESRV_JAVA_OPTS:--Xms128m -Xmx128m -Xmn64m}
ports:
- "${LIKEI_LOCAL_ROCKETMQ_NAMESRV_PORT}:9876"
networks:
- localnet
rocketmq-init:
<<: *env-file
image: apache/rocketmq:${LIKEI_LOCAL_ROCKETMQ_IMAGE_TAG:-5.3.2}
container_name: chatapp3-local-rocketmq-init
restart: "no"
user: root
command:
- sh
- -c
- mkdir -p /home/rocketmq/store && chown -R rocketmq:root /home/rocketmq/store
volumes:
- chatapp3-local-rocketmq-store:/home/rocketmq/store
networks:
- localnet
rocketmq-broker:
<<: *env-file
image: apache/rocketmq:${LIKEI_LOCAL_ROCKETMQ_IMAGE_TAG:-5.3.2}
container_name: chatapp3-local-rocketmq-broker
restart: unless-stopped
depends_on:
rocketmq-namesrv:
condition: service_started
rocketmq-init:
condition: service_completed_successfully
command: ["sh", "mqbroker", "-n", "rocketmq-namesrv:9876", "-c", "/home/rocketmq/rocketmq-5.3.2/conf/broker.conf"]
environment:
TZ: ${TZ}
NAMESRV_ADDR: rocketmq-namesrv:9876
JAVA_OPT_EXT: ${LIKEI_LOCAL_ROCKETMQ_BROKER_JAVA_OPTS:--Xms256m -Xmx256m -Xmn128m}
volumes:
- ./local-infra/rocketmq/broker.conf:/home/rocketmq/rocketmq-5.3.2/conf/broker.conf:ro
- chatapp3-local-rocketmq-store:/home/rocketmq/store
networks:
- localnet
rocketmq-proxy:
<<: *env-file
image: apache/rocketmq:${LIKEI_LOCAL_ROCKETMQ_IMAGE_TAG:-5.3.2}
container_name: chatapp3-local-rocketmq-proxy
restart: unless-stopped
depends_on:
- rocketmq-namesrv
- rocketmq-broker
command: ["/bin/sh", "/opt/rocketmq-ext/start-proxy.sh"]
environment:
TZ: ${TZ}
NAMESRV_ADDR: rocketmq-namesrv:9876
ROCKETMQ_CLUSTER_NAME: DefaultCluster
ROCKETMQ_BOOTSTRAP_TOPICS: DefaultHeartBeatSyncerTopic,RC_DEFAULT_APP_ORDER,RC_DEFAULT_APP_ORDINARY,RC_DEFAULT_APP_DELAYED
JAVA_OPT_EXT: ${LIKEI_LOCAL_ROCKETMQ_PROXY_JAVA_OPTS:--Xms128m -Xmx256m -Xmn64m}
ports:
- "${LIKEI_LOCAL_ROCKETMQ_PROXY_HTTP_PORT}:8080"
- "${LIKEI_LOCAL_ROCKETMQ_PROXY_GRPC_PORT}:8081"
volumes:
- ./local-infra/rocketmq/start-proxy.sh:/opt/rocketmq-ext/start-proxy.sh:ro
networks:
- localnet
gateway:
<<: *java-service
container_name: chatapp3-local-gateway
depends_on:
- nacos
environment:
<<: *java-environment
FEIGN_AUTH_URL: http://rc-auth
ports:
- "${LIKEI_LOCAL_GATEWAY_PORT}:1100"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-gateway/target/rc-gateway-1.0.0-local.jar:/app/app.jar:ro
auth:
<<: *java-service
container_name: chatapp3-local-auth
depends_on:
- nacos
ports:
- "${LIKEI_LOCAL_AUTH_PORT}:1000"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-auth/target/rc-auth-1.0.0-local.jar:/app/app.jar:ro
external:
<<: *java-service
container_name: chatapp3-local-external
depends_on:
- nacos
ports:
- "${LIKEI_LOCAL_EXTERNAL_PORT}:3000"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-service/rc-service-external/external-start/target/rc-service-external-1.0.0-local.jar:/app/app.jar:ro
other:
<<: *java-service
container_name: chatapp3-local-other
depends_on:
- nacos
- mongo
environment:
<<: *java-environment
JAVA_OPTS: "${LIKEI_LOCAL_OTHER_JAVA_OPTS:--Xms128m -Xmx512m} ${LIKEI_LOCAL_OTHER_JAVA_OPTS_EXTRA:-}"
ports:
- "${LIKEI_LOCAL_OTHER_PORT}:2400"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-service/rc-service-other/other-start/target/rc-service-other-1.0.0-local.jar:/app/app.jar:ro
live:
<<: *java-service
container_name: chatapp3-local-live
depends_on:
- nacos
- mongo
ports:
- "${LIKEI_LOCAL_LIVE_PORT}:2500"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-service/rc-service-live/live-start/target/rc-service-live-1.0.0-local.jar:/app/app.jar:ro
order:
<<: *java-service
container_name: chatapp3-local-order
depends_on:
- nacos
- mongo
ports:
- "${LIKEI_LOCAL_ORDER_PORT}:2600"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-service/rc-service-order/order-start/target/rc-service-order-1.0.0-local.jar:/app/app.jar:ro
wallet:
<<: *java-service
container_name: chatapp3-local-wallet
depends_on:
- nacos
- mongo
ports:
- "${LIKEI_LOCAL_WALLET_PORT}:2000"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-service/rc-service-wallet/wallet-start/target/rc-service-wallet-1.0.0-local.jar:/app/app.jar:ro
console:
<<: *java-service
container_name: chatapp3-local-console
depends_on:
- nacos
- mongo
ports:
- "${LIKEI_LOCAL_CONSOLE_PORT}:2700"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-service/rc-service-console/console-start/target/rc-service-console-1.0.0-local.jar:/app/app.jar:ro
visual-monitor:
<<: *java-service
container_name: chatapp3-local-visual-monitor
depends_on:
- nacos
ports:
- "${LIKEI_LOCAL_VISUAL_MONITOR_PORT}:8000"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-visual/visual-monitor/target/visual-monitor-1.0.0-local.jar:/app/app.jar:ro
scheduling:
<<: *java-service
container_name: chatapp3-local-scheduling
depends_on:
- nacos
- zookeeper
environment:
<<: *java-environment
JAVA_OPTS: ${LIKEI_LOCAL_SCHEDULING_JAVA_OPTS:--Xms128m -Xmx384m}
ports:
- "${LIKEI_LOCAL_SCHEDULING_PORT}:2800"
volumes:
- ${LIKEI_LOCAL_JAVA_REPO_DIR:-../../chatapp3/chatapp3-java}/rc-scheduling/target/rc-scheduling-1.0.0-local.jar:/app/app.jar:ro
golang:
<<: *env-file
image: golang:1.24
container_name: chatapp3-local-golang
restart: unless-stopped
depends_on:
- auth
- other
- wallet
- mysql
- redis
working_dir: /workspace/chatapp3-golang
command:
- sh
- -c
- go mod download && go run ./cmd/api
ports:
- "${LIKEI_LOCAL_GOLANG_PORT}:2900"
volumes:
- ${LIKEI_LOCAL_GOLANG_REPO_DIR:-../../chatapp3/chatapp3-golang}:/workspace/chatapp3-golang
- chatapp3-local-go-pkg:/go/pkg/mod
- chatapp3-local-go-build:/root/.cache/go-build
networks:
- localnet
volumes:
chatapp3-local-go-build:
chatapp3-local-go-pkg:
chatapp3-local-mysql-data:
chatapp3-local-redis-data:
chatapp3-local-mongo-data:
chatapp3-local-rocketmq-store:
networks:
localnet:
name: chatapp3-localnet