Caddy log rotation mystery, ignores my configugration

Hi,

1. The problem I’m having:

Caddy ignores my logrotation settings, I dont want compressed log files and keep them until 500MiB size.

Validated via
auditctl -d -w /opt/docker/caddyv2/log/caddy.log -p wa -k file_watch
that the caddy process rotates the log.

docker exec -w /etc/caddy caddy_devcon_cc caddy adapt --config /etc/caddy/Caddyfile --pretty | grep roll

                                    "roll_gzip": false,
                                    "roll_keep": 10,
                                    "roll_size_mb": 500

2. Error messages and/or full log output:

-rw------- 1 root root  61233 Jan  6 19:38 caddy-2026-01-06T18-38-14.815.log.gz
-rw------- 1 root root 104554 Jan  6 19:39 caddy-2026-01-06T18-39-40.879.log.gz
-rw------- 1 root root 312201 Jan  6 19:40 caddy.log

3. Caddy version:

v2.10.2 h1:g/gTYjGMD0dec+UgMw8SnfmJ3I9+M2TdvoRL/Ovu6U8=

4. How I installed and ran Caddy:

Via docker compose

a. System environment:

Docker 26.1.4

b. Command:

docker compose up

c. Service/unit/compose file:

version: "3.7"

services:
  caddy:
    build: .
    container_name: caddy_devcon_cc
    restart: always
    volumes:
      - /root/docker/caddyv2/Caddyfile:/etc/caddy/Caddyfile:ro
      - /root/docker/caddyv2/data:/data
      - /root/docker/caddyv2/config:/config
      - /root/docker/caddyv2/block_ai_crawlers.conf:/etc/caddy/block_ai_crawlers.conf:ro
      - /root/docker/caddyv2/log:/var/log
    ports:
      - 192.168.2.153:80:80/tcp
      - 192.168.2.153:443:443
      - 192.168.2.153:443:443/udp
      - 192.168.2.158:80:80/tcp
      - 192.168.2.158:443:443
      - 192.168.2.158:443:443/udp
    environment:
      ACME_AGREE: "true" # agree to Let's Encrypt Subscriber Agreement

Dockerfile

FROM caddy:2.10-builder AS builder
RUN xcaddy build \
     --with github.com/caddy-dns/digitalocean \
     --with github.com/mholt/caddy-ratelimit \
     --with pkg.jsn.cam/caddy-defender
FROM caddy:2.10
COPY --from=builder /usr/bin/caddy /usr/bin/caddy

d. My complete Caddy config:

(log-console) {
        log {
        output file /var/log/caddy.log {
        roll_size 500MiB
        roll_keep 10
#       roll_keep_for_startup 10
        roll_uncompressed
       }
        format json
        }
}

www.tuit4ju.at {
        import log-console
        reverse_proxy 192.168.2.108:80
}


5. Links to relevant resources:

We’re replacing the log rolling library with 2.11 (you can try beta.1 release, there’s a Docker image), it might work better for you. The old library had fallen out of maintenance, so I can’t give you any guarantees.

1 Like