services: radicale: image: docker.io/tomsquest/docker-radicale:3.5.4.0 container_name: radicale init: true read_only: true security_opt: - no-new-privileges:true cap_drop: - ALL cap_add: - SETUID - SETGID - CHOWN - KILL deploy: resources: limits: memory: 256M pids: 50 volumes: - ${APPDATA_PATH}/radicale/data:/data - ${APPDATA_PATH}/radicale/config:/config:ro ports: - ${PORT}:5232 networks: - frontend restart: unless-stopped healthcheck: test: curl -f http://127.0.0.1:5232 || exit 1 interval: 30s retries: 3 networks: frontend: external: true