Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,16 @@ RUN mkdir -p /home/exedev/.claude /home/exedev/.codex /home/exedev/.pi \
COPY init /usr/local/bin/init
RUN chmod +x /usr/local/bin/init

# Empty the machine ID that systemd's and dbus's package configuration baked in
# during the apt layer above. Left as-is, every VM created from this image
# shares one identity, which defeats anything that assumes machine IDs are
# unique (systemd's FixedRandomDelay=, for one). Emptied rather than removed:
# systemd reads an *absent* /etc/machine-id as first boot and presets all units,
# re-enabling the ones disabled above. Must stay after the last apt-get install,
# or a later package configure bakes in a fresh one. Mirrors exeuntu.
RUN : >/etc/machine-id \
&& ln -sf /etc/machine-id /var/lib/dbus/machine-id

# Sets the default proxy port. Without an EXPOSE, exe.dev defaults to :80
# (verified on a stock ubuntu:24.04 VM); exeuntu exposes 8000 and 9999, the
# latter being Shelley's. We have no Shelley, so 8000 alone.
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ below is platform wiring that exe.dev depends on, and is reproduced here:
| `rm /usr/sbin/policy-rc.d` | Otherwise apt-installed services silently fail to start. |
| exedev uid 1000 via `usermod -l` | Renames the stock `ubuntu` user so uid/gid/home/subuid line up with exeuntu. |
| linger + `XDG_RUNTIME_DIR` | Populates `/run/user/1000` so `systemd --user` works. |
| Empty `/etc/machine-id` at the end of the build | Package configuration bakes an ID into the image, so every VM would share one identity. Emptied, not removed: an absent file makes systemd treat boot as first boot and re-enable the units disabled above. |

Deliberately **not** carried over: Chrome/headless-shell, the Claude/Codex/pi
agent *binaries*, the pi extension and catalog, nginx + its index page,
Expand Down