#!/usr/bin/env bash
# 组合包安装脚本（Trove 自动生成，勿手改；组合包文档为准）
# combo: combo-docker-wsl-env ｜ 容器与 WSL 环境成套配置与排查 ｜ 状态: partial
# 生成: 2026-09-24 ｜ 详情: https://trove.xin/combos/combo-docker-wsl-env.html ｜ 依赖警告见文档
# 按官方下载源 + 国内镜像适配；每条命令后可验证（预期输出见组合包文档）。
# 注意：本包为配置/排查型，命令含占位符或示例片段，不能整段直跑；请按文档逐步复制执行。

# ==== [1/2] WSL：基础环境配置目标 ====
# 版本要求: WSL >= 2.4.4（wsl --manage <发行版> --set-sparse true 需要 2.4.4+，WSL 2 为运行前提）
# 编码（问题：wsl-pipe-encoding）——现代 WSL 默认 UTF-8 管道，中文直传正常；
  # 旧版 / Windows PowerShell 5.1 出现逐字符空字节/乱码时，改为 Windows Terminal + WSL 内 UTF-8 区域设置：
  sudo locale-gen zh_CN.UTF-8 && sudo update-locale LANG=zh_CN.UTF-8
  # 磁盘（问题：wsl-no-space-left）——vhdx 稀疏化，删除文件自动还空间（WSL 2.4.4+）：
  #   Windows 侧（PowerShell）：wsl --shutdown
  #   wsl --manage <发行版> --set-sparse true
  # 运行时（问题：claude-code-router-2）——WSL 侧装 Node，别依赖 Windows 侧 npm：
  curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs

# ==== [2/2] Docker Engine：容器运行时配置目标 ====
# 版本要求: >= 20.10（registry-mirrors / host-gateway 长期支持；本机实测 29.1.3）
# daemon（问题：docker-daemon-connect）——"Cannot connect to the Docker daemon" 三板斧：
  #   1) Docker Desktop 已启动且开启 WSL 集成（Settings → Resources → WSL integration）
  #   2) 检查 socket：ls -l /mnt/wsl/docker-desktop/shared-sockets/guest-services/docker.proxy.sock
  #   3) 或本机直接跑 Engine：sudo systemctl enable --now docker
# 排查：占用者是不是 docker-proxy，daemon 是不是 /usr/bin/dockerd（旧 daemon 特征）
#   ss -ltnp | grep <端口>
  systemctl status docker          # 确认旧 daemon 在自启
  # 处理：停掉并禁用 WSL 内旧 daemon（先确认其名下无在用容器再停）
  systemctl stop docker docker.socket
  systemctl disable docker docker.socket

