version: '2.3' services: conductor-server: environment: - CONFIG_PROP=config-postgres-es7.properties image: conductor:server container_name: conductor-server build: context: ../ dockerfile: docker/server/Dockerfile args: YARN_OPTS: ${YARN_OPTS} networks: - internal ports: - 8000:8080 - 8127:5000 healthcheck: test: [ "CMD", "curl","-I" ,"-XGET", "http://localhost:8080/health" ] interval: 60s timeout: 30s retries: 12 links: - conductor-postgres:postgresdb - conductor-elasticsearch:es depends_on: conductor-postgres: condition: service_healthy conductor-elasticsearch: condition: service_healthy logging: driver: "json-file" options: max-size: "1k" max-file: "3" conductor-postgres: image: postgres:16 environment: - POSTGRES_USER=conductor - POSTGRES_PASSWORD=conductor volumes: - pgdata-conductor:/var/lib/postgresql/data networks: - internal healthcheck: test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/5432' interval: 5s timeout: 5s retries: 12 logging: driver: "json-file" options: max-size: "1k" max-file: "3" conductor-elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.17.11 environment: - "ES_JAVA_OPTS=-Xms512m -Xmx1024m" - xpack.security.enabled=false - discovery.type=single-node volumes: - esdata-conductor:/usr/share/elasticsearch/data networks: - internal healthcheck: test: curl http://localhost:9200/_cluster/health -o /dev/null interval: 5s timeout: 5s retries: 12 logging: driver: "json-file" options: max-size: "1k" max-file: "3" volumes: pgdata-conductor: driver: local esdata-conductor: driver: local networks: internal: