82 lines
3.4 KiB
YAML
82 lines
3.4 KiB
YAML
version: "2.2"
|
|
|
|
services:
|
|
es01:
|
|
container_name: es01
|
|
image: {docker-repo}:{version}
|
|
environment:
|
|
- node.name=es01
|
|
- discovery.seed_hosts=es02,es03
|
|
- cluster.initial_master_nodes=es01,es02,es03
|
|
- ELASTIC_PASSWORD=$ELASTIC_PASSWORD
|
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
|
- xpack.security.enabled=true
|
|
- xpack.security.http.ssl.enabled=true
|
|
- xpack.security.http.ssl.key=$CERTS_DIR/es01/es01.key
|
|
- xpack.security.http.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
|
|
- xpack.security.http.ssl.certificate=$CERTS_DIR/es01/es01.crt
|
|
- xpack.security.transport.ssl.enabled=true
|
|
- xpack.security.transport.ssl.verification_mode=certificate
|
|
- xpack.security.transport.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
|
|
- xpack.security.transport.ssl.certificate=$CERTS_DIR/es01/es01.crt
|
|
- xpack.security.transport.ssl.key=$CERTS_DIR/es01/es01.key
|
|
volumes: ["data01:/usr/share/elasticsearch/data", "certs:$CERTS_DIR"]
|
|
ports:
|
|
- 9200:9200
|
|
healthcheck:
|
|
test: curl --cacert $CERTS_DIR/ca/ca.crt -s https://localhost:9200 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
|
|
es02:
|
|
container_name: es02
|
|
image: {docker-repo}:{version}
|
|
environment:
|
|
- node.name=es02
|
|
- discovery.seed_hosts=es01,es03
|
|
- cluster.initial_master_nodes=es01,es02,es03
|
|
- ELASTIC_PASSWORD=$ELASTIC_PASSWORD
|
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
|
- xpack.license.self_generated.type=trial
|
|
- xpack.security.enabled=true
|
|
- xpack.security.http.ssl.enabled=true
|
|
- xpack.security.http.ssl.key=$CERTS_DIR/es02/es02.key
|
|
- xpack.security.http.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
|
|
- xpack.security.http.ssl.certificate=$CERTS_DIR/es02/es02.crt
|
|
- xpack.security.transport.ssl.enabled=true
|
|
- xpack.security.transport.ssl.verification_mode=certificate
|
|
- xpack.security.transport.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
|
|
- xpack.security.transport.ssl.certificate=$CERTS_DIR/es02/es02.crt
|
|
- xpack.security.transport.ssl.key=$CERTS_DIR/es02/es02.key
|
|
volumes: ["data02:/usr/share/elasticsearch/data", "certs:$CERTS_DIR"]
|
|
|
|
es03:
|
|
container_name: es03
|
|
image: {docker-repo}:{version}
|
|
environment:
|
|
- node.name=es03
|
|
- discovery.seed_hosts=es01,es02
|
|
- cluster.initial_master_nodes=es01,es02,es03
|
|
- ELASTIC_PASSWORD=$ELASTIC_PASSWORD
|
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
|
- xpack.license.self_generated.type=trial
|
|
- xpack.security.enabled=true
|
|
- xpack.security.http.ssl.enabled=true
|
|
- xpack.security.http.ssl.key=$CERTS_DIR/es03/es03.key
|
|
- xpack.security.http.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
|
|
- xpack.security.http.ssl.certificate=$CERTS_DIR/es03/es03.crt
|
|
- xpack.security.transport.ssl.enabled=true
|
|
- xpack.security.transport.ssl.verification_mode=certificate
|
|
- xpack.security.transport.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
|
|
- xpack.security.transport.ssl.certificate=$CERTS_DIR/es03/es03.crt
|
|
- xpack.security.transport.ssl.key=$CERTS_DIR/es03/es03.key
|
|
volumes: ["data03:/usr/share/elasticsearch/data", "certs:$CERTS_DIR"]
|
|
|
|
wait_until_ready:
|
|
image: {docker-repo}:{version}
|
|
command: /usr/bin/true
|
|
depends_on: { "es01": { "condition": "service_healthy" } }
|
|
|
|
volumes: { "data01", "data02", "data03", "certs" }
|