Repository navigation
Expand file tree
/
Copy pathcompose.yaml
More file actions
48 lines (47 loc) · 2.08 KB
/
Copy pathcompose.yaml
File metadata and controls
48 lines (47 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
services:
dev:
build:
context: .devcontainer
dockerfile: Dockerfile
image: cryptopals-dev
# Gira come utente host (uid/gid 1000, = utente "ubuntu" nell'immagine)
# cosi' i file creati dentro il container non risultano di root sull'host
# e git non segnala "dubious ownership" sul repo montato.
# Override quando serve root: docker compose run --rm --user root dev bash
user: "1000:1000"
working_dir: /app
environment:
- HOME=/home/ubuntu
- TERM=${TERM:-xterm-256color}
# Clipboard di sistema: si riusa il socket Wayland dell'host, cosi'
# wl-copy/wl-paste (e quindi il registro "+" di neovim e la copy-mode di
# tmux) scrivono nella clipboard dell'host. Richiede una sessione Wayland
# sull'host; su X11/senza display il mount qui sotto va rimosso.
- WAYLAND_DISPLAY=${WAYLAND_DISPLAY:-wayland-0}
- XDG_RUNTIME_DIR=/run/user/1000
volumes:
- .:/app
# socket Wayland dell'host per la clipboard (vedi WAYLAND_DISPLAY sopra)
- ${XDG_RUNTIME_DIR:-/run/user/1000}/${WAYLAND_DISPLAY:-wayland-0}:/run/user/1000/${WAYLAND_DISPLAY:-wayland-0}
# config di sviluppo dell'host (nvim in rw: aggiorna lazy-lock.json)
- ${HOME}/.config/nvim:/home/ubuntu/.config/nvim
- ${HOME}/.config/tmux:/home/ubuntu/.config/tmux:ro
- ${HOME}/.ssh:/home/ubuntu/.ssh:ro
# stato/plugin di neovim: volumi dedicati al container (parser treesitter
# e binari compilati per l'immagine, non condivisi con l'host)
- nvim-data:/home/ubuntu/.local/share/nvim
- nvim-state:/home/ubuntu/.local/state/nvim
- nvim-cache:/home/ubuntu/.cache/nvim
# login e config della CLI di Claude Code: volume dedicato al container,
# indipendente dalla config di Claude sull'host (~/.claude NON e' montato).
# L'autenticazione sopravvive a `docker compose down && up`.
- claude-config:/home/ubuntu/.claude
# Tiene il container vivo per `docker compose exec`
command: sleep infinity
stdin_open: true
tty: true
volumes:
nvim-data:
nvim-state:
nvim-cache:
claude-config: