name: banner-fingerprint services: server: build: context: . target: server image: banner-fingerprint-server:local command: ["-addr", ":8080", "-rules", "/app/configs/rules.yaml", "-max-batch", "1000"] ports: - "127.0.0.1:${BANNER_SERVER_PORT:-8080}:8080" networks: - backend - edge healthcheck: test: ["CMD", "/app/server", "-healthcheck", "http://127.0.0.1:8080/health"] interval: 5s timeout: 3s retries: 5 start_period: 5s user: "65532:65532" read_only: true tmpfs: - /tmp:rw,noexec,nosuid,size=16m,mode=1777 security_opt: - no-new-privileges:true cap_drop: - ALL init: true pids_limit: 128 mem_limit: 128m cpus: 0.50 restart: unless-stopped stop_grace_period: 10s client: build: context: . target: client image: banner-fingerprint-client:local command: ["-server", "http://server:8080", "-input", "/data/input.json", "-timeout", "15s"] depends_on: server: condition: service_healthy volumes: - ./examples/input.json:/data/input.json:ro networks: - backend user: "65532:65532" read_only: true tmpfs: - /tmp:rw,noexec,nosuid,size=8m,mode=1777 security_opt: - no-new-privileges:true cap_drop: - ALL init: true pids_limit: 64 mem_limit: 64m cpus: 0.25 restart: "no" networks: backend: internal: true driver: bridge edge: driver: bridge