| # 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 |