Commit 6b66819
authored
[Docker] Make kit/data writable by the non-root user (#6122)
## Summary
Adds a named volume for `${DOCKER_ISAACSIM_ROOT_PATH}/kit/data` so the
non-root `isaaclab` user can write the Kit kernel config there.
Fixes the residual `omni.kit.app.plugin` error reported in nvbug
6288406:
```
[Error] [omni.kit.app.plugin] failed to open file '/isaac-sim/kit/data/Kit/IsaacLab/3.0/user.config.json' - unable to save the dictionary
```
## Root cause
PR #6082 made every docker-compose named-volume mount point writable by
the non-root user (driven by `docker/utils/volume_mounts.py` + the
build-time `chown`). But `kit/data` was **never a declared volume** —
pre–non-root migration it was writable simply because the container ran
as `root`. Under the non-root image it stays `root:root`, so the Kit
kernel cannot write `kit/data/.../user.config.json`. This is **universal
to every docker user** (the image bakes `USER isaaclab`; `kit/data` is
neither mounted nor chowned), independent of the launch flow.
(The sibling `omni.datastore` lock errors on `kit/cache` in the original
report were a QA workflow artifact of a raw `docker run` that bypasses
the compose volumes; the documented `container.py`/compose flow already
handles those via #6082.)
## Fix
Declare `kit/data` as a named volume. `docker-compose.yaml` is the
single source of truth, so this routes it through the existing
`volume_mounts.py` + `chown` machinery — the build pre-creates and
chowns `/isaac-sim/kit/data` to `isaaclab`. Consistent with
`kit/cache`/`kit/logs`, and it benignly persists Kit config across runs.
## Validation
Built the image (`nvcr.io/nvidian/isaac-sim:latest-release-6-0` base)
and verified as the non-root runtime user (uid 1000):
| | `/isaac-sim/kit/data` | non-root write of `user.config.json` |
|---|---|---|
| Pre-fix (base image, inherited) | not writable | **Permission denied**
|
| Post-fix (this PR) | owned by uid 1000 | **OK** |
`volume_mounts.py` now emits `/isaac-sim/kit/data`, and the running
container no longer logs the `user.config.json` / `omni.datastore` /
`DerivedDataCache` errors.1 parent a96121a commit 6b66819
1 file changed
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
16 | 19 | | |
17 | 20 | | |
18 | 21 | | |
| |||
138 | 141 | | |
139 | 142 | | |
140 | 143 | | |
| 144 | + | |
141 | 145 | | |
142 | 146 | | |
143 | 147 | | |
| |||
0 commit comments