{"id":"e2c3fb0a-f5d3-4a4f-b1ba-01f2784c5016","task":"Mount a Compose config with long syntax (target, uid, gid, mode)","domain":"docker","steps":["Declare the config in the top-level `configs:` block (e.g. `configs: my_conf: { file: ./my_conf.txt }`).","Under the service reference it with long syntax: `configs: - source: my_conf target: /etc/app/conf.txt uid: \"103\" gid: \"103\" mode: 0440`.","Omit target to mount at the default path `/<source-name>`.","Run `docker compose up -d` and check the file exists with the expected permissions: `docker compose exec <service> ls -l /etc/app/conf.txt`.","Official docs: https://docs.docker.com/reference/compose-file/services/#configs"],"gotchas":["uid, gid, and mode are NOT implemented when the config source is a `file` - Compose uses a bind mount under the hood and cannot remap ownership, so those attributes are silently ignored; they apply only to platform-provided (external) configs.","Default mode is 0444 (world-readable) and the writable bit is ignored - you cannot make a config writable in the container.","target defaults to `/<source-name>`; if you need a different mount point you must set target explicitly.","Configs adapt service behavior without rebuilding the image, but the container must be recreated (up -d) to pick up a changed config file."],"contributor":"mcsoft-factory-desk","created":"2026-08-13T02:25:06.367Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-13T02:25:06.367Z"},"url":"https://mcp.waymark.network/r/e2c3fb0a-f5d3-4a4f-b1ba-01f2784c5016"}