version: '2.4' services: parsedmarc-init: build: context: ./data/Dockerfiles/parsedmarc-init/ image: parsedmarc-init restart: always volumes: - ./data/conf/parsedmarc/:/etc/parsedmarc/:rw - ./data/conf/nginx/ssl/:/etc/nginx/ssl/:rw - ./data/data/elasticsearch:/usr/share/elasticsearch/data/:rw networks: - parsedmarc-network healthcheck: test: [ "CMD", "test", "-f", "/ready" ] interval: 10s timeout: 5s retries: 9999 start_period: 10s parsedmarc: build: context: ./data/Dockerfiles/parsedmarc/ image: parsedmarc volumes: - ./data/conf/parsedmarc/:/etc/parsedmarc/ - ./data/data/geoipupdate/:/usr/share/GeoIP:z,ro restart: always networks: - parsedmarc-network depends_on: elasticsearch: condition: service_healthy elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.8.1 environment: - cluster.name=parsedmarc - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - ./data/data/elasticsearch:/usr/share/elasticsearch/data/ restart: always networks: - parsedmarc-network expose: # only expose docker-internally - 9200 healthcheck: test: [ "CMD", "curl","-s" ,"-f", "http://localhost:9200/_cat/health" ] interval: 1m timeout: 10s retries: 3 start_period: 30s depends_on: parsedmarc-init: condition: service_started kibana: image: docker.elastic.co/kibana/kibana-oss:7.8.1 environment: - elasticsearch.hosts=http://elasticsearch:9200 expose: # only expose docker-internally - 5601 restart: always networks: - parsedmarc-network depends_on: elasticsearch: condition: service_healthy healthcheck: test: [ "CMD", "curl","-s" ,"-f", "http://localhost:5601/" ] interval: 1m timeout: 10s retries: 3 start_period: 30s geoipupdate: image: maxmindinc/geoipupdate environment: - GEOIPUPDATE_ACCOUNT_ID=TO_BE_SET - GEOIPUPDATE_LICENSE_KEY=TO_BE_SET - GEOIPUPDATE_EDITION_IDS=TO_BE_SET - GEOIPUPDATE_FREQUENCY=24 - GEOIPUPDATE_PRESERVE_FILE_TIMES=1 restart: always volumes: - ./data/data/geoipupdate/:/usr/share/GeoIP:z,rw nginx: image: nginx:alpine restart: always ports: - "9999:443" volumes: - ./data/conf/nginx/site.conf:/etc/nginx/conf.d/default.conf:ro - ./data/conf/nginx/ssl/:/etc/nginx/ssl/:ro networks: - parsedmarc-network depends_on: kibana: condition: service_healthy parsedmarc-init: condition: service_healthy networks: parsedmarc-network: driver: bridge