docker-compose.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. version: "2.2"
  2. services:
  3. es01:
  4. container_name: es01
  5. image: {docker-repo}:{version}
  6. environment:
  7. - node.name=es01
  8. - discovery.seed_hosts=es02,es03
  9. - cluster.initial_master_nodes=es01,es02,es03
  10. - ELASTIC_PASSWORD=$ELASTIC_PASSWORD
  11. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  12. - xpack.security.enabled=true
  13. - xpack.security.http.ssl.enabled=true
  14. - xpack.security.http.ssl.key=$CERTS_DIR/es01/es01.key
  15. - xpack.security.http.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
  16. - xpack.security.http.ssl.certificate=$CERTS_DIR/es01/es01.crt
  17. - xpack.security.transport.ssl.enabled=true
  18. - xpack.security.transport.ssl.verification_mode=certificate
  19. - xpack.security.transport.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
  20. - xpack.security.transport.ssl.certificate=$CERTS_DIR/es01/es01.crt
  21. - xpack.security.transport.ssl.key=$CERTS_DIR/es01/es01.key
  22. volumes: ["data01:/usr/share/elasticsearch/data", "certs:$CERTS_DIR"]
  23. ports:
  24. - 9200:9200
  25. healthcheck:
  26. test: curl --cacert $CERTS_DIR/ca/ca.crt -s https://localhost:9200 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi
  27. interval: 30s
  28. timeout: 10s
  29. retries: 5
  30. es02:
  31. container_name: es02
  32. image: {docker-repo}:{version}
  33. environment:
  34. - node.name=es02
  35. - discovery.seed_hosts=es01,es03
  36. - cluster.initial_master_nodes=es01,es02,es03
  37. - ELASTIC_PASSWORD=$ELASTIC_PASSWORD
  38. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  39. - xpack.license.self_generated.type=trial
  40. - xpack.security.enabled=true
  41. - xpack.security.http.ssl.enabled=true
  42. - xpack.security.http.ssl.key=$CERTS_DIR/es02/es02.key
  43. - xpack.security.http.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
  44. - xpack.security.http.ssl.certificate=$CERTS_DIR/es02/es02.crt
  45. - xpack.security.transport.ssl.enabled=true
  46. - xpack.security.transport.ssl.verification_mode=certificate
  47. - xpack.security.transport.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
  48. - xpack.security.transport.ssl.certificate=$CERTS_DIR/es02/es02.crt
  49. - xpack.security.transport.ssl.key=$CERTS_DIR/es02/es02.key
  50. volumes: ["data02:/usr/share/elasticsearch/data", "certs:$CERTS_DIR"]
  51. es03:
  52. container_name: es03
  53. image: {docker-repo}:{version}
  54. environment:
  55. - node.name=es03
  56. - discovery.seed_hosts=es01,es02
  57. - cluster.initial_master_nodes=es01,es02,es03
  58. - ELASTIC_PASSWORD=$ELASTIC_PASSWORD
  59. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  60. - xpack.license.self_generated.type=trial
  61. - xpack.security.enabled=true
  62. - xpack.security.http.ssl.enabled=true
  63. - xpack.security.http.ssl.key=$CERTS_DIR/es03/es03.key
  64. - xpack.security.http.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
  65. - xpack.security.http.ssl.certificate=$CERTS_DIR/es03/es03.crt
  66. - xpack.security.transport.ssl.enabled=true
  67. - xpack.security.transport.ssl.verification_mode=certificate
  68. - xpack.security.transport.ssl.certificate_authorities=$CERTS_DIR/ca/ca.crt
  69. - xpack.security.transport.ssl.certificate=$CERTS_DIR/es03/es03.crt
  70. - xpack.security.transport.ssl.key=$CERTS_DIR/es03/es03.key
  71. volumes: ["data03:/usr/share/elasticsearch/data", "certs:$CERTS_DIR"]
  72. wait_until_ready:
  73. image: {docker-repo}:{version}
  74. command: /usr/bin/true
  75. depends_on: { "es01": { "condition": "service_healthy" } }
  76. volumes: { "data01", "data02", "data03", "certs" }