Skip to content

Commit 6e8f3f1

Browse files
jonnyzzzclaude
andcommitted
fix(deploy): point DYNDNS_DATA/DYNDNS_LOGS at the container mount paths
The compose file was passing ${STEVEDORE_DATA} — the HOST path — straight through to DYNDNS_DATA inside the container. That path doesn't exist in the container (the volume is mounted at /data), so any MkdirAll + write under cfg.DataDir succeeded on the container's writable layer and got destroyed on every rebuild. MTProto secrets visibly regenerated after each deploy because of this. Use /data and /var/log/dyndns — the static container-side paths that match the bind mounts further down in the file. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent e5372bb commit 6e8f3f1

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

docker-compose.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,13 @@ services:
7979
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
8080
- TELEGRAM_BOT_CHAT_IDS=${TELEGRAM_BOT_CHAT_IDS:-}
8181

82-
# Internal paths (set by Stevedore or use defaults for local dev)
83-
- DYNDNS_DATA=${STEVEDORE_DATA:-./data}
84-
- DYNDNS_LOGS=${STEVEDORE_LOGS:-./logs}
82+
# Internal paths — must match the container mount points below, not
83+
# the host paths. DYNDNS_DATA was previously set to ${STEVEDORE_DATA},
84+
# which is the HOST path; writes from inside the container to that
85+
# path landed on the ephemeral container layer, not on the persistent
86+
# volume. MTProto secrets regenerating across rebuilds surfaced this.
87+
- DYNDNS_DATA=/data
88+
- DYNDNS_LOGS=/var/log/dyndns
8589

8690
volumes:
8791
# Persistent data - certificates, DNS state

0 commit comments

Comments
 (0)