Summary
The README quick-start only shows a named volume:
docker run --rm -p 9000:9000 -v octobus-data:/var/lib/octobus ghcr.io/chaitin/octobus:latest
When a host bind mount is used instead (common on servers, e.g. -v /srv/octobus-data:/var/lib/octobus), the container fails to start or misbehaves if the host directory is owned by root, because the image runs as the non-root octobus system user (docker/Dockerfile: groupadd --system octobus && useradd --system ... && USER octobus, typically uid/gid 999 on Debian) and cannot write to /var/lib/octobus.
Named volumes work because Docker initializes them from the image directory's ownership; bind mounts bypass that.
Suggestion
Document the requirement in the README deployment section, e.g.:
mkdir -p /srv/octobus-data
sudo chown -R 999:999 /srv/octobus-data # container runs as the octobus system user
docker run -d -p 9000:9000 -v /srv/octobus-data:/var/lib/octobus ghcr.io/chaitin/octobus:latest
(Optionally print the container's actual uid/gid at build time, since --system uid allocation can vary.)
Environment
ghcr.io/chaitin/octobus:latest (2026-07), Ubuntu 22.04 host, Docker 26
- Symptom before
chown: container exits / fails to initialize state under the bind-mounted data directory
Summary
The README quick-start only shows a named volume:
When a host bind mount is used instead (common on servers, e.g.
-v /srv/octobus-data:/var/lib/octobus), the container fails to start or misbehaves if the host directory is owned by root, because the image runs as the non-rootoctobussystem user (docker/Dockerfile:groupadd --system octobus && useradd --system ... && USER octobus, typically uid/gid 999 on Debian) and cannot write to/var/lib/octobus.Named volumes work because Docker initializes them from the image directory's ownership; bind mounts bypass that.
Suggestion
Document the requirement in the README deployment section, e.g.:
mkdir -p /srv/octobus-data sudo chown -R 999:999 /srv/octobus-data # container runs as the octobus system user docker run -d -p 9000:9000 -v /srv/octobus-data:/var/lib/octobus ghcr.io/chaitin/octobus:latest(Optionally print the container's actual uid/gid at build time, since
--systemuid allocation can vary.)Environment
ghcr.io/chaitin/octobus:latest(2026-07), Ubuntu 22.04 host, Docker 26chown: container exits / fails to initialize state under the bind-mounted data directory