Switched the booterm runtime + proddeps stages from node:20-alpine (musl) to node:20-bookworm-slim (glibc) so host-installed glibc binaries (Claude Code, opencode, nvm node) run inside the container when invoked from the terminal pane. node-pty's native .node has to be compiled in the same libc env as the runtime, so both stages flip together; the TypeScript-only builder stage stays on alpine. su-exec is alpine-only; Debian replacement is gosu — swapped in both the runtime apt install and the tmux default-command. uid/gid 1000 collision with the bookworm `node` user handled via userdel/groupdel before groupadd/useradd. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
16 lines
760 B
Bash
16 lines
760 B
Bash
set -g default-terminal "screen-256color"
|
|
set -g history-limit 50000
|
|
set -g mouse on
|
|
setw -g mode-keys vi
|
|
set -g status off
|
|
set -g destroy-unattached off
|
|
|
|
# v1.10.1: shells drop privs to samkintop (uid 1000) so the terminal runs in
|
|
# the user's environment, not root. `env HOME=… USER=…` is required because
|
|
# gosu (and su-exec before it) only changes uid/gid — it leaves env intact,
|
|
# and the tmux server runs as root so HOME would otherwise be /root. bash -l
|
|
# then sources samkintop's ~/.profile / ~/.bashrc to pick up PATH (nvm,
|
|
# ~/.local/bin, ~/.opencode/bin).
|
|
# v1.10.2: su-exec → gosu (alpine → debian; functionally identical).
|
|
set -g default-command "gosu samkintop:samkintop env HOME=/home/samkintop USER=samkintop SHELL=/bin/bash bash -l"
|