Summary
deployments/aio/community/Dockerfile line 62 declares the VOLUME instruction with single quotes:
VOLUME ['/app/data', '/app/logs']
Docker's JSON (exec) form requires double quotes. With single quotes Docker does not parse it as a JSON array; it falls back to the shell form and treats the bracket/comma tokens as literal volume paths. The resulting image declares two anonymous volumes with malformed, non-absolute destinations:
$ docker image inspect makeplane/plane-aio-community:stable --format '{{json .Config.Volumes}}'
{"/app/logs]":{},"[/app/data,":{}}
$ docker history --no-trunc makeplane/plane-aio-community:stable | grep VOLUME
VOLUME [[/app/data, /app/logs]]
Impact
Docker Engine tolerated these non-absolute anonymous volume paths at container create time until Engine 29.5.0 (released 2026-05-14), which now validates and rejects them:
Error response from daemon: invalid mount config for type "volume":
invalid mount path: '[/app/data,' mount path must be absolute
Effect on plane-aio-community:
- Existing containers keep running (start of an already-created container is still tolerated).
- Any recreation fails:
docker compose up -d --force-recreate, docker compose pull && up -d, or recreate after an image bump. The AIO instance becomes non-upgradeable on Docker ≥ 29.5.0.
Reproduction
docker pull makeplane/plane-aio-community:stable
docker run -d --name plane-test makeplane/plane-aio-community:stable
docker rm -f plane-test
# On Docker Engine 29.5.0:
docker create --name plane-test makeplane/plane-aio-community:stable
# -> Error response from daemon: invalid mount config for type "volume":
# invalid mount path: '[/app/data,' mount path must be absolute
Environment
- Image:
makeplane/plane-aio-community:stable (and every tag back to v0.28.0 — the defect is long-standing, only newly surfaced by Docker behavior)
- Docker Engine: 29.5.0
- Affected file:
deployments/aio/community/Dockerfile:62 (present on both preview and master)
Suggested fix
Use the valid JSON array form with double quotes:
VOLUME ["/app/data", "/app/logs"]
One-line fix submitted as a PR.
Summary
deployments/aio/community/Dockerfileline 62 declares theVOLUMEinstruction with single quotes:Docker's JSON (exec) form requires double quotes. With single quotes Docker does not parse it as a JSON array; it falls back to the shell form and treats the bracket/comma tokens as literal volume paths. The resulting image declares two anonymous volumes with malformed, non-absolute destinations:
Impact
Docker Engine tolerated these non-absolute anonymous volume paths at container create time until Engine 29.5.0 (released 2026-05-14), which now validates and rejects them:
Effect on
plane-aio-community:docker compose up -d --force-recreate,docker compose pull && up -d, or recreate after an image bump. The AIO instance becomes non-upgradeable on Docker ≥ 29.5.0.Reproduction
Environment
makeplane/plane-aio-community:stable(and every tag back tov0.28.0— the defect is long-standing, only newly surfaced by Docker behavior)deployments/aio/community/Dockerfile:62(present on bothpreviewandmaster)Suggested fix
Use the valid JSON array form with double quotes:
One-line fix submitted as a PR.