forked from tatssi/TATSSI
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun-tatssi.sh
More file actions
executable file
·57 lines (49 loc) · 1.93 KB
/
Copy pathrun-tatssi.sh
File metadata and controls
executable file
·57 lines (49 loc) · 1.93 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
49
50
51
52
53
54
55
56
57
#!/usr/bin/env bash
#
# Lanza la GUI de TATSSI desde el contenedor usando el X11 del host.
#
# La imagen actual (tatssi:latest) trae el entorno Python 3.12: numpy 2.x,
# pandas 3.x, GDAL 3.12 (con todos los drivers: HDF4/HDF5/KML), PyQt 5.15,
# R 4.5 + changepoint, rioxarray y earthaccess (descargas Earthdata Cloud).
#
# El codigo de TATSSI NO esta dentro de la imagen: este script monta el repo
# (la carpeta donde vive este script, incluida data/) como volumen en
# /opt/TATSSI, y ejecuta el contenedor con TU usuario del host, de modo que
# todos los archivos creados/modificados conservan tus permisos en ambos lados.
#
# Uso:
# ./run-tatssi.sh -> abre la interfaz grafica (tatssi.py)
# ./run-tatssi.sh bash -> abre una shell dentro del contenedor
#
# Imagenes disponibles (variable TATSSI_IMAGE para elegir):
# TATSSI_IMAGE=tatssi:latest ./run-tatssi.sh (default, Python 3.12)
set -euo pipefail
IMAGE="${TATSSI_IMAGE:-tatssi:latest}"
# Directorio del repo = carpeta donde esta este script (se monta en /opt/TATSSI)
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# UID:GID del host para conservar permisos en los archivos del volumen
HOST_UID="$(id -u)"
HOST_GID="$(id -g)"
# Cookie de autorizacion X11 del host
XAUTH="${XAUTHORITY:-$HOME/.Xauthority}"
# Permite que el contenedor se conecte al servidor X del host
xhost +local: >/dev/null
# Limpia el permiso X11 al salir
cleanup() { xhost -local: >/dev/null 2>&1 || true; }
trap cleanup EXIT
# Monta la cookie X11 en /tmp/.Xauthority solo si existe
XAUTH_ARGS=()
if [ -f "$XAUTH" ]; then
XAUTH_ARGS=(-e XAUTHORITY=/tmp/.Xauthority
-v "${XAUTH}":/tmp/.Xauthority:ro)
fi
docker run --rm -it \
--name tatssi \
--user "${HOST_UID}:${HOST_GID}" \
-e DISPLAY="$DISPLAY" \
-e QT_X11_NO_MITSHM=1 \
"${XAUTH_ARGS[@]}" \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v "${REPO_DIR}":/opt/TATSSI:rw \
-w /opt/TATSSI/TATSSI/UI \
"$IMAGE" "$@"