blob: d2636fb6ca4211665c3e7b5707ab471d5157352d [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: "3.9"
services:
shenyu-zk:
container_name: shenyu-zk
image: zookeeper:3.5
restart: always
networks:
- shenyu
shenyu-redis:
image: redis:6.0-alpine
container_name: shenyu-redis
restart: always
command: redis-server --requirepass abc
networks:
- shenyu
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
shenyu-examples-http:
deploy:
resources:
limits:
memory: 2048M
container_name: shenyu-examples-http
image: shenyu-examples-http:latest
restart: always
environment:
- shenyu.register.serverLists=http://shenyu-admin:9095
healthcheck:
test: [ "CMD", "wget", "http://shenyu-examples-http:8189/test/path/123?name=tom" ]
timeout: 2s
retries: 30
ports:
- "8189:8189"
depends_on:
shenyu-integrated-test-http:
condition: service_healthy
networks:
- shenyu
shenyu-admin:
image: apache/shenyu-admin:latest
container_name: shenyu-admin
restart: always
networks:
- shenyu
depends_on:
shenyu-redis:
condition: service_healthy
ports:
- "9095:9095"
environment:
- SPRING_PROFILES_ACTIVE=h2
- shenyu.database.init_script=sql-script/h2/schema.sql
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://shenyu-admin:9095/actuator/health | grep UP || exit 1"]
timeout: 2s
retries: 30
shenyu-integrated-test-http:
container_name: shenyu-integrated-test-http
image: apache/shenyu-integrated-test-http:latest
restart: always
deploy:
resources:
limits:
memory: 2048M
environment:
- shenyu.sync.websocket.urls=ws://shenyu-admin:9095/websocket
depends_on:
shenyu-admin:
condition: service_healthy
ports:
- "9195:9195"
- "8090:8090"
networks:
- shenyu
healthcheck:
test: [ "CMD", "wget", "http://shenyu-integrated-test-http:9195/actuator/health" ]
timeout: 2s
retries: 30
shenyu-prometheus:
image: prom/prometheus:v2.35.0
container_name: shenyu-prometheus
ports:
- "9090:9090"
depends_on:
shenyu-integrated-test-http:
condition: service_healthy
networks:
- shenyu
volumes:
- type: bind
source: ./config/prometheus.yml
target: /etc/prometheus/prometheus.yml
shenyu-elasticsearch:
container_name: shenyu-elasticsearch
image: elasticsearch:8.2.3
restart: always
networks:
- shenyu
ports:
- "9200:9200"
- "9300:9300"
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
- xpack.security.enabled=false
healthcheck:
test: [ "CMD", "wget", "http://localhost:9200/_cat/health?v" ]
timeout: 2s
retries: 30
shenyu-kafka:
container_name: shenyu-kafka
image: confluentinc/cp-kafka:latest
restart: always
depends_on:
- shenyu-zk
networks:
- shenyu
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: shenyu-zk
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
shenyu-rocketmq:
image: apache/rocketmq:4.9.3
container_name: shenyu-rocketmq
restart: always
depends_on:
shenyu-integrated-test-http:
condition: service_healthy
ports:
- "9876:9876"
environment:
JAVA_OPT_EXT: "-server -Xms1g -Xmx1g"
volumes:
- ./logs:/root/logs
command: sh mqnamesrv
networks:
shenyu:
aliases:
- shenyu-rocketmq
shenyu-rmqbroker:
image: apache/rocketmq:4.9.3
container_name: shenyu-rmqbroker
restart: always
depends_on:
- shenyu-rocketmq
ports:
- 10909:10909
- 10911:10911
volumes:
- ./logs:/root/logs
- ./store:/root/store
- ./config/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
command: sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
environment:
NAMESRV_ADDR: "shenyu-rocketmq:9876"
JAVA_OPT_EXT: "-server -Xms1g -Xmx1g -Xmn1g"
networks:
shenyu:
aliases:
- shenyu-rmqbroker
networks:
shenyu:
name: shenyu