#!/usr/bin/env bash # 개발 컨테이너 기동 (백그라운드). 이미 떠 있으면 그대로 둔다. set -euo pipefail . "$(dirname "${BASH_SOURCE[0]}")/_docker.sh" # ---- X11 인증 ------------------------------------------------------------- # 컨테이너의 dev 사용자가 호스트 X 서버에 붙으려면 쿠키가 필요하다. # DISPLAY 소켓만 마운트하면 'Authorization required' 로 거절당한다. XAUTH=/tmp/.docker.xauth if [[ -n "${DISPLAY:-}" ]]; then touch "$XAUTH" # 'FamilyWild' 로 바꿔 넣어야 컨테이너의 다른 호스트네임에서도 통한다. xauth nlist "$DISPLAY" 2>/dev/null | sed -e 's/^..../ffff/' | xauth -f "$XAUTH" nmerge - 2>/dev/null || true chmod 644 "$XAUTH" xhost +local:docker >/dev/null 2>&1 || warn "xhost 실패 — 인터랙티브 뷰어가 안 뜰 수 있습니다." ok "X11 준비 (DISPLAY=$DISPLAY)" else warn "DISPLAY 가 없습니다. 헤드리스로 동작합니다 (오프라인 배치 렌더링은 정상)." touch "$XAUTH" fi say "컨테이너 기동: ${CONTAINER_NAME:-vkgs-sim-dev}" dc up -d dev say "컨테이너 안에서 진단 실행" dc exec -T dev vkgs-doctor || warn "진단에서 문제가 보고됐습니다 (위 출력 확인)." ok "준비 완료 — bash scripts/shell.sh 로 들어가세요."