Simplify state persistence
Use use local ./data directory instead of XDG directories.
This commit is contained in:
parent
c3e9e2b40b
commit
39edc252f0
4 changed files with 3 additions and 21 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
data
|
||||
|
|
@ -9,7 +9,7 @@ the host.
|
|||
- Arch Linux–based image
|
||||
- Runs as the host user (same username, UID, GID)
|
||||
- Mounts only the current project directory (same absolute path inside container)
|
||||
- Persists OpenCode state via XDG directories
|
||||
- Persists OpenCode state in ./data directory
|
||||
- No access to SSH keys, passwords, or full `$HOME`
|
||||
- Simple shell function (`opencode`) to launch interactively
|
||||
|
||||
|
|
|
|||
|
|
@ -15,10 +15,7 @@ services:
|
|||
tty: true
|
||||
|
||||
environment:
|
||||
XDG_DATA_HOME: "${XDG_DATA_HOME}"
|
||||
XDG_CONFIG_HOME: "${XDG_CONFIG_HOME}"
|
||||
XDG_STATE_HOME: "${XDG_STATE_HOME}"
|
||||
XDG_CACHE_HOME: "${XDG_CACHE_HOME}"
|
||||
HOME: "${PWD}/data"
|
||||
UID: "${UID}"
|
||||
GID: "${GID}"
|
||||
|
||||
|
|
@ -26,12 +23,6 @@ services:
|
|||
# Current project (read–write)
|
||||
- "${PWD}:${PWD}"
|
||||
|
||||
# OpenCode persistence (host directories, writable)
|
||||
- "${XDG_DATA_HOME}/opencode:${XDG_DATA_HOME}/opencode"
|
||||
- "${XDG_CONFIG_HOME}/opencode:${XDG_CONFIG_HOME}/opencode"
|
||||
- "${XDG_STATE_HOME}/opencode:${XDG_STATE_HOME}/opencode"
|
||||
- "${XDG_CACHE_HOME}/opencode:${XDG_CACHE_HOME}/opencode"
|
||||
|
||||
cap_drop:
|
||||
- ALL
|
||||
security_opt:
|
||||
|
|
|
|||
|
|
@ -1,19 +1,9 @@
|
|||
OPENCODE_CONTAINER_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
|
||||
|
||||
opencode() {
|
||||
# Set defaults if not already defined
|
||||
: "${XDG_DATA_HOME:=$HOME/.local/share}"
|
||||
: "${XDG_CONFIG_HOME:=$HOME/.config}"
|
||||
: "${XDG_STATE_HOME:=$HOME/.local/state}"
|
||||
: "${XDG_CACHE_HOME:=$HOME/.cache}"
|
||||
|
||||
UID=$(id -u) \
|
||||
GID=$(id -g) \
|
||||
USER=$(whoami) \
|
||||
XDG_DATA_HOME="$XDG_DATA_HOME" \
|
||||
XDG_CONFIG_HOME="$XDG_CONFIG_HOME" \
|
||||
XDG_STATE_HOME="$XDG_STATE_HOME" \
|
||||
XDG_CACHE_HOME="$XDG_CACHE_HOME" \
|
||||
docker compose \
|
||||
-f "$OPENCODE_CONTAINER_DIR/docker-compose.yaml" \
|
||||
run --rm \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue