blob: e7eabcf80a70efff5040a8c4087e825145df44d5 [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.8"
services:
## Redis
apisix_redis:
image: redis:3.0-alpine
restart: unless-stopped
ports:
- "6379:6379"
networks:
apisix_net:
## keycloak
apisix_keycloak:
image: sshniro/keycloak-apisix:1.0.0
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: 123456
restart: unless-stopped
ports:
- "8090:8080"
- "8443:8443"
networks:
apisix_net:
## kafka-cluster
zookeeper-server1:
image: bitnami/zookeeper:3.6.0
env_file:
- ci/pod/kafka/zookeeper-server/env/common.env
restart: unless-stopped
ports:
- "2181:2181"
networks:
kafka_net:
zookeeper-server2:
image: bitnami/zookeeper:3.6.0
env_file:
- ci/pod/kafka/zookeeper-server/env/common.env
restart: unless-stopped
ports:
- "12181:12181"
networks:
kafka_net:
kafka-server1:
image: bitnami/kafka:2.8.1
env_file:
- ci/pod/kafka/kafka-server/env/common.env
environment:
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper-server1:2181
restart: unless-stopped
ports:
- "9092:9092"
depends_on:
- zookeeper-server1
- zookeeper-server2
networks:
kafka_net:
kafka-server2:
image: bitnami/kafka:2.8.1
env_file:
- ci/pod/kafka/kafka-server/env/common.env
environment:
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper-server2:2181
restart: unless-stopped
ports:
- "19092:9092"
depends_on:
- zookeeper-server1
- zookeeper-server2
networks:
kafka_net:
## Eureka
eureka:
image: bitinit/eureka
env_file:
- ci/pod/eureka/env/common.env
restart: unless-stopped
ports:
- "8761:8761"
## SkyWalking
skywalking:
image: apache/skywalking-oap-server:8.7.0-es6
restart: unless-stopped
ports:
- "1234:1234"
- "11800:11800"
- "12800:12800"
networks:
skywalk_net:
## Consul
consul_1:
image: consul:1.7
restart: unless-stopped
ports:
- "8500:8500"
command: [ "consul", "agent", "-server", "-bootstrap-expect=1", "-client", "0.0.0.0", "-log-level", "info", "-data-dir=/consul/data" ]
networks:
consul_net:
consul_2:
image: consul:1.7
restart: unless-stopped
ports:
- "8600:8500"
command: [ "consul", "agent", "-server", "-bootstrap-expect=1", "-client", "0.0.0.0", "-log-level", "info", "-data-dir=/consul/data" ]
networks:
consul_net:
## HashiCorp Vault
vault:
image: vault:1.9.0
container_name: vault
restart: unless-stopped
ports:
- "8200:8200"
cap_add:
- IPC_LOCK
environment:
VAULT_DEV_ROOT_TOKEN_ID: root
VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200
command: [ "vault", "server", "-dev" ]
networks:
vault_net:
## OpenLDAP
openldap:
image: bitnami/openldap:2.5.8
environment:
LDAP_ADMIN_USERNAME: amdin
LDAP_ADMIN_PASSWORD: adminpassword
LDAP_USERS: user01,user02
LDAP_PASSWORDS: password1,password2
ports:
- "1389:1389"
- "1636:1636"
## Nacos cluster
nacos_auth:
hostname: nacos1
image: nacos/nacos-server:1.4.1
env_file:
- ci/pod/nacos/env/common.env
environment:
NACOS_AUTH_ENABLE: "true"
restart: unless-stopped
ports:
- "8848:8848"
networks:
nacos_net:
nacos_no_auth:
hostname: nacos2
image: nacos/nacos-server:1.4.1
env_file:
- ci/pod/nacos/env/common.env
restart: unless-stopped
ports:
- "8858:8848"
networks:
nacos_net:
nacos_server_health_check:
build:
context: ci/pod/nacos/healthcheck
dockerfile: Dockerfile
environment:
CHECK_URI: "http://nacos2:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=2"
tty: true
# debug healthcheck script
# volumes:
# - ./ci/pod/nacos/healthcheck/nacos-server-healthcheck.sh:/nacos-server-healthcheck.sh
healthcheck:
test: [ "CMD", "bash", "/nacos-server-healthcheck.sh" ]
interval: 5s
timeout: 5s
retries: 60
start_period: 10s
networks:
nacos_net:
nacos_service_health_check:
build:
context: ci/pod/nacos/healthcheck
dockerfile: Dockerfile
# debug healthcheck script
# volumes:
# - ./ci/pod/nacos/healthcheck/nacos-service-healthcheck.sh:/nacos-service-healthcheck.sh
tty: true
healthcheck:
test: [ "CMD", "bash", "/nacos-service-healthcheck.sh" ]
interval: 5s
timeout: 30s
retries: 60
start_period: 10s
networks:
nacos_net:
### Nacos services
nacos-service1:
build:
context: ci/pod/nacos/service
dockerfile: Dockerfile
env_file:
- ci/pod/nacos/env/service.env
environment:
SUFFIX_NUM: 1
restart: unless-stopped
ports:
- "18001:18001"
depends_on:
nacos_server_health_check:
condition: service_healthy
networks:
nacos_net:
nacos-service2:
build:
context: ci/pod/nacos/service
dockerfile: Dockerfile
env_file:
- ci/pod/nacos/env/service.env
environment:
SUFFIX_NUM: 2
restart: unless-stopped
ports:
- "18002:18001"
depends_on:
nacos_server_health_check:
condition: service_healthy
networks:
nacos_net:
nacos-service3:
build:
context: ci/pod/nacos/service
dockerfile: Dockerfile
env_file:
- ci/pod/nacos/env/service.env
environment:
SUFFIX_NUM: 1
NAMESPACE: test_ns
restart: unless-stopped
ports:
- "18003:18001"
depends_on:
nacos_server_health_check:
condition: service_healthy
networks:
nacos_net:
nacos-service4:
build:
context: ci/pod/nacos/service
dockerfile: Dockerfile
env_file:
- ci/pod/nacos/env/service.env
environment:
SUFFIX_NUM: 1
GROUP: test_group
restart: unless-stopped
ports:
- "18004:18001"
depends_on:
nacos_server_health_check:
condition: service_healthy
networks:
nacos_net:
nacos-service5:
build:
context: ci/pod/nacos/service
dockerfile: Dockerfile
env_file:
- ci/pod/nacos/env/service.env
environment:
SUFFIX_NUM: 1
GROUP: test_group
NAMESPACE: test_ns
restart: unless-stopped
ports:
- "18005:18001"
depends_on:
nacos_server_health_check:
condition: service_healthy
networks:
nacos_net:
nacos-service6:
build:
context: ci/pod/nacos/service
dockerfile: Dockerfile
env_file:
- ci/pod/nacos/env/service.env
environment:
SUFFIX_NUM: 3
GROUP: test_group2
NAMESPACE: test_ns
restart: unless-stopped
ports:
- "18006:18001"
depends_on:
nacos_server_health_check:
condition: service_healthy
networks:
nacos_net:
nacos-service7:
build:
context: ci/pod/nacos/service
dockerfile: Dockerfile
env_file:
- ci/pod/nacos/env/service.env
environment:
SUFFIX_NUM: 4
GROUP: test_group
NAMESPACE: test_ns2
restart: unless-stopped
ports:
- "18007:18001"
depends_on:
nacos_server_health_check:
condition: service_healthy
networks:
nacos_net:
## http_echo
apisix_http_echo:
image: mendhak/http-https-echo
environment:
HTTP_PORT: 8888
HTTPS_PORT: 9999
restart: unless-stopped
ports:
- "8888:8888"
- "9999:9999"
depends_on:
nacos_service_health_check:
condition: service_healthy
networks:
apisix_net:
rocketmq_namesrv:
image: apacherocketmq/rocketmq:4.6.0
container_name: rmqnamesrv
restart: unless-stopped
ports:
- "9876:9876"
command: sh mqnamesrv
networks:
rocketmq_net:
rocketmq_broker:
image: apacherocketmq/rocketmq:4.6.0
container_name: rmqbroker
restart: unless-stopped
ports:
- "10909:10909"
- "10911:10911"
- "10912:10912"
depends_on:
- rocketmq_namesrv
command: sh mqbroker -n rocketmq_namesrv:9876 -c ../conf/broker.conf
networks:
rocketmq_net:
# Open Policy Agent
opa:
image: openpolicyagent/opa:0.35.0
restart: unless-stopped
ports:
- 8181:8181
command: run -s /example.rego /echo.rego /data.json
volumes:
- type: bind
source: ./ci/pod/opa/example.rego
target: /example.rego
- type: bind
source: ./ci/pod/opa/echo.rego
target: /echo.rego
- type: bind
source: ./ci/pod/opa/data.json
target: /data.json
networks:
opa_net:
# Splunk HEC Logging Service
splunk:
image: splunk/splunk:8.2.3
restart: unless-stopped
ports:
- "18088:8088"
environment:
SPLUNK_PASSWORD: "ApacheAPISIX@666"
SPLUNK_START_ARGS: "--accept-license"
SPLUNK_HEC_TOKEN: "BD274822-96AA-4DA6-90EC-18940FB2414C"
SPLUNK_HEC_SSL: "False"
networks:
apisix_net:
consul_net:
kafka_net:
nacos_net:
skywalk_net:
rocketmq_net:
vault_net:
opa_net: