version: '2.4' services: parsedmarc-init: image: patschi/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: image: patschi/parsedmarc:latest 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 - telemetry.enabled=false - telemetry.optIn=false 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 env_file: - geoipupdate.env environment: - "GEOIPUPDATE_EDITION_IDS=GeoLite2-ASN GeoLite2-City GeoLite2-Country" - 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