359 lines
10 KiB
YAML
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
|