version: '2.3' services: conductor-server: environment: - CONFIG_PROP=config-mysql.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-elasticsearch:es - conductor-mysql:mysql - conductor-redis:rs depends_on: conductor-elasticsearch: condition: service_healthy conductor-mysql: condition: service_healthy conductor-redis: condition: service_healthy logging: driver: "json-file" options: max-size: "1k" max-file: "3" conductor-mysql: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: 12345 MYSQL_DATABASE: conductor MYSQL_USER: conductor MYSQL_PASSWORD: conductor volumes: - type: volume source: conductor_mysql target: /var/lib/mysql networks: - internal healthcheck: test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/3306' interval: 5s timeout: 5s retries: 12 conductor-redis: image: redis:6.2.3-alpine volumes: - ./redis.conf:/usr/local/etc/redis/redis.conf networks: - internal healthcheck: test: [ "CMD", "redis-cli","ping" ] 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: conductor_mysql: driver: local esdata-conductor: driver: local networks: internal: