druid/integration-tests/docker/docker-compose.base.yml
Xavier Léauté b517c3339b
remove ZooKeeper 3.4 support + pass tests with Java 15 (#11073)
With this change, Druid will only support ZooKeeper 3.5.x and later.

In order to support Java 15 we need to switch to ZK 3.5.x client libraries and drop support for ZK 3.4.x
(see #10780 for the detailed reasons) 

* remove ZooKeeper 3.4.x compatibility
* exclude additional ZK 3.5.x netty dependencies to ensure we use our version
* keep ZooKeeper version used for integration tests in sync with client library version
* remove the need to specify ZK version at runtime for docker
* add support to run integration tests with JDK 15
* build and run unit tests with Java 15 in travis
2021-05-25 12:49:49 -07:00

400 lines
10 KiB
YAML

# 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: "2.2"
# IP address ranges:
# 172.172.172.2: zookeeper + kafka (dockerfile depends on this)
# 172.172.172.3: metadata store
# 172.172.172.10-19: overlord
# 172.172.172.20-29: coordinator
# 172.172.172.30-39: historicals
# 172.172.172.40-49: middle managers
# 172.172.172.50-59: indexers
# 172.172.172.60-69: brokers
# 172.172.172.70-79: routers
# 172.172.172.101+: hadoop, other supporting infra
networks:
druid-it-net:
name: druid-it-net
ipam:
config:
- subnet: 172.172.172.0/24
services:
### always there supporting infra:
druid-zookeeper-kafka:
image: druid/cluster
container_name: druid-zookeeper-kafka
ports:
- 2181:2181
- 9092:9092
- 9093:9093
networks:
druid-it-net:
## Dockerfile depends on this address for this container it seems...
ipv4_address: 172.172.172.2
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/zookeeper.conf:/usr/lib/druid/conf/zookeeper.conf
- ./service-supervisords/kafka.conf:/usr/lib/druid/conf/kafka.conf
env_file:
- ./environment-configs/common
druid-metadata-storage:
image: druid/cluster
container_name: druid-metadata-storage
ports:
- 13306:3306
networks:
druid-it-net:
ipv4_address: 172.172.172.3
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/metadata-storage.conf:/usr/lib/druid/conf/metadata-storage.conf
env_file:
- ./environment-configs/common
### overlords
druid-overlord:
image: druid/cluster
container_name: druid-overlord
hostname: druid-overlord
networks:
druid-it-net:
ipv4_address: 172.172.172.10
ports:
- 8090:8090
- 8290:8290
- 5009:5009
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/overlord
druid-overlord-two:
image: druid/cluster
container_name: druid-overlord-two
hostname: druid-overlord-two
networks:
druid-it-net:
ipv4_address: 172.172.172.11
ports:
- 8590:8090
- 8790:8290
- 6009:5009
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/overlord
### coordinators
druid-coordinator:
image: druid/cluster
container_name: druid-coordinator
hostname: druid-coordinator
networks:
druid-it-net:
ipv4_address: 172.172.172.20
ports:
- 8081:8081
- 8281:8281
- 5006:5006
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/coordinator
druid-coordinator-two:
image: druid/cluster
container_name: druid-coordinator-two
hostname: druid-coordinator-two
networks:
druid-it-net:
ipv4_address: 172.172.172.21
ports:
- 8581:8081
- 8781:8281
- 6006:5006
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/coordinator
### historicals
druid-historical:
image: druid/cluster
container_name: druid-historical
hostname: druid-historical
networks:
druid-it-net:
ipv4_address: 172.172.172.30
ports:
- 8083:8083
- 8283:8283
- 5007:5007
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/historical
### middle managers
druid-middlemanager:
image: druid/cluster
container_name: druid-middlemanager
hostname: druid-middlemanager
networks:
druid-it-net:
ipv4_address: 172.172.172.40
ports:
- 5008:5008
- 8091:8091
- 8291:8291
- 8100:8100
- 8101:8101
- 8102:8102
- 8103:8103
- 8104:8104
- 8105:8105
- 8300:8300
- 8301:8301
- 8302:8302
- 8303:8303
- 8304:8304
- 8305:8305
privileged: true
volumes:
- ./../src/test/resources:/resources
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/middlemanager
### indexers
druid-indexer:
image: druid/cluster
container_name: druid-indexer
hostname: druid-indexer
networks:
druid-it-net:
ipv4_address: 172.172.172.50
ports:
- 5008:5008
- 8091:8091
- 8291:8291
privileged: true
volumes:
- ./../src/test/resources:/resources
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/indexer
### brokers
druid-broker:
image: druid/cluster
hostname: druid-broker
container_name: druid-broker
networks:
druid-it-net:
ipv4_address: 172.172.172.60
ports:
- 5005:5005
- 8082:8082
- 8282:8282
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/broker
### routers
druid-router:
image: druid/cluster
container_name: druid-router
hostname: druid-router
networks:
druid-it-net:
ipv4_address: 172.172.172.70
ports:
- 5004:5004
- 8888:8888
- 9088:9088
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/router
druid-router-permissive-tls:
image: druid/cluster
container_name: druid-router-permissive-tls
networks:
druid-it-net:
ipv4_address: 172.172.172.71
ports:
- 5001:5001
- 8889:8889
- 9089:9089
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/router-permissive-tls
druid-router-no-client-auth-tls:
image: druid/cluster
container_name: druid-router-no-client-auth-tls
networks:
druid-it-net:
ipv4_address: 172.172.172.72
ports:
- 5002:5002
- 8890:8890
- 9090:9090
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/router-no-client-auth-tls
druid-router-custom-check-tls:
image: druid/cluster
container_name: druid-router-custom-check-tls
networks:
druid-it-net:
ipv4_address: 172.172.172.73
ports:
- 5003:5003
- 8891:8891
- 9091:9091
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./service-supervisords/druid.conf:/usr/lib/druid/conf/druid.conf
env_file:
- ./environment-configs/common
- ./environment-configs/router-custom-check-tls
### optional supporting infra
druid-it-hadoop:
image: druid-it/hadoop:2.8.5
container_name: druid-it-hadoop
ports:
- 2049:2049
- 2122:2122
- 8020:8020
- 8021:8021
- 8030:8030
- 8031:8031
- 8032:8032
- 8033:8033
- 8040:8040
- 8042:8042
- 8088:8088
- 8443:8443
- 9000:9000
- 10020:10020
- 19888:19888
- 34455:34455
- 50010:50010
- 50020:50020
- 50030:50030
- 50060:50060
- 50070:50070
- 50075:50075
- 50090:50090
- 51111:51111
networks:
druid-it-net:
ipv4_address: 172.172.172.101
privileged: true
volumes:
- ${HOME}/shared:/shared
- ./../src/test/resources:/resources
hostname: "druid-it-hadoop"
command: "bash -c 'echo Start druid-it-hadoop container... && \
/etc/bootstrap.sh && \
tail -f /dev/null'"
druid-openldap:
image: osixia/openldap:1.4.0
container_name: druid-openldap
networks:
druid-it-net:
ipv4_address: 172.172.172.102
ports:
- 8389:389
- 8636:636
privileged: true
volumes:
- ./ldap-configs:/container/service/slapd/assets/config/bootstrap/ldif/custom
- ${HOME}/shared:/shared
env_file:
- ./environment-configs/common
command: --copy-service
schema-registry:
image: confluentinc/cp-schema-registry:5.5.1
container_name: schema-registry
ports:
- 8085:8085
networks:
druid-it-net:
ipv4_address: 172.172.172.103
volumes:
- ${HOME}/shared:/shared
- ./schema-registry/jaas_config.file:/usr/lib/druid/conf/jaas_config.file
- ./schema-registry/password-file:/usr/lib/druid/conf/password-file
privileged: true
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_LISTENERS: "http://0.0.0.0:8085"
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: druid-zookeeper-kafka:9092
SCHEMA_REGISTRY_AUTHENTICATION_METHOD: BASIC
SCHEMA_REGISTRY_AUTHENTICATION_REALM: druid
SCHEMA_REGISTRY_AUTHENTICATION_ROLES: users
SCHEMA_REGISTRY_OPTS: -Djava.security.auth.login.config=/usr/lib/druid/conf/jaas_config.file -Xmx32m