Compare commits
8
Commits
ff73a2ad2c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66d6a45c01 | ||
|
|
98b944b1ea | ||
|
|
9ac73aa335 | ||
|
|
32a81d7c5c | ||
|
|
510cc4151a | ||
|
|
c6e0e94a0d | ||
|
|
331d4c8b19 | ||
|
|
d68ff6fd63 |
No files matched your search
+10
-2
@@ -6,8 +6,16 @@
|
|||||||
# del contenedor.
|
# del contenedor.
|
||||||
FROM alpine:3.24
|
FROM alpine:3.24
|
||||||
|
|
||||||
RUN apk add --no-cache tmux docker-cli bash curl git kubectl nodejs npm \
|
# uv (paquete directo de Alpine, no via pip): corre servidores MCP en
|
||||||
&& npm install -g @anthropic-ai/claude-code \
|
# Python bajo demanda (ej. `uvx workspace-mcp`, ver ADR 0012 practica
|
||||||
|
# multi-cloud) sin instalar Python a mano -- uv baja el interprete que
|
||||||
|
# necesite por su cuenta la primera vez que se usa.
|
||||||
|
# @google/clasp (oficial, 2026-09-28): CLI + modo MCP (`clasp mcp`) para
|
||||||
|
# el Portal SCM en Apps Script (sesion scm-portal, ADR 0013). Su credencial
|
||||||
|
# NO vive en la imagen: va en /DATA/AppData/k3d-lab-v3/clasp-auth/.clasprc.json
|
||||||
|
# (persistente) via la variable clasp_config_auth.
|
||||||
|
RUN apk add --no-cache tmux docker-cli bash curl git kubectl nodejs npm uv \
|
||||||
|
&& npm install -g @anthropic-ai/claude-code @google/clasp \
|
||||||
&& git config --global --add safe.directory '*'
|
&& git config --global --add safe.directory '*'
|
||||||
|
|
||||||
# Repo raiz del lab (CLAUDE.md, apps-registry/, platform-infra/, scripts/).
|
# Repo raiz del lab (CLAUDE.md, apps-registry/, platform-infra/, scripts/).
|
||||||
|
|||||||
+10
-2
@@ -2,8 +2,16 @@
|
|||||||
# Proceso principal (PID 1) del contenedor tmux-host: lanza el chequeo de
|
# Proceso principal (PID 1) del contenedor tmux-host: lanza el chequeo de
|
||||||
# salud en background y mantiene el contenedor vivo, igual que el
|
# salud en background y mantiene el contenedor vivo, igual que el
|
||||||
# `tail -f /dev/null` del `docker run` inline original.
|
# `tail -f /dev/null` del `docker run` inline original.
|
||||||
set -eu
|
set -u
|
||||||
|
|
||||||
/usr/local/bin/healthcheck.sh &
|
supervise_healthcheck() {
|
||||||
|
while true; do
|
||||||
|
/usr/local/bin/healthcheck.sh
|
||||||
|
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) WARN: healthcheck.sh salio inesperadamente (exit=$?) -- relanzando en 10s" \
|
||||||
|
>> /DATA/AppData/k3d-lab-v3/tmux-host/logs/health.log 2>/dev/null || true
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
supervise_healthcheck &
|
||||||
exec tail -f /dev/null
|
exec tail -f /dev/null
|
||||||
@@ -30,9 +30,13 @@ WORKDIR="/DATA/AppData/k3d-lab-v3/lab-cruzcloud"
|
|||||||
# subdirectorio de WORKDIR (repo platform-multicloud ya clonado ahi),
|
# subdirectorio de WORKDIR (repo platform-multicloud ya clonado ahi),
|
||||||
# asi que el mismo wait_for_workdir() de abajo (que solo espera por el
|
# asi que el mismo wait_for_workdir() de abajo (que solo espera por el
|
||||||
# WORKDIR padre) ya cubre el caso de arranque en frio para las dos.
|
# WORKDIR padre) ya cubre el caso de arranque en frio para las dos.
|
||||||
|
# "scm-portal" agregada 2026-09-28: sesion dedicada al Portal SCM (Apps
|
||||||
|
# Script) sobre el repo client-initiatives (ADR 0013), separada de "lab"
|
||||||
|
# a proposito para no mezclar contexto ni memoria con ARI Shopping.
|
||||||
SESSIONS=(
|
SESSIONS=(
|
||||||
"lab:${WORKDIR}"
|
"lab:${WORKDIR}"
|
||||||
"cloud-practice:${WORKDIR}/platform-multicloud"
|
"cloud-practice:${WORKDIR}/platform-multicloud"
|
||||||
|
"scm-portal:${WORKDIR}/client-initiatives"
|
||||||
)
|
)
|
||||||
LOG_DIR="/DATA/AppData/k3d-lab-v3/tmux-host/logs"
|
LOG_DIR="/DATA/AppData/k3d-lab-v3/tmux-host/logs"
|
||||||
LOG_FILE="${LOG_DIR}/health.log"
|
LOG_FILE="${LOG_DIR}/health.log"
|
||||||
|
|||||||
Reference in new issue
Block a user