Skip to content

Commit 331dbb4

Browse files
authored
1
1 parent 89fe230 commit 331dbb4

1 file changed

Lines changed: 12 additions & 16 deletions

File tree

‎.devcontainer/devcontainer.json‎

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,22 @@
77
"features": {
88
"ghcr.io/devcontainers/features/docker-in-docker:2": {
99
"version": "latest",
10-
// Debian 12 (Bookworm) 默认支持 Moby,注释掉是对的
10+
// Debian 12/Ubuntu 24.04 默认支持 Moby,保持注释即可
1111
// "moby": false,
1212
"dockerDashComposeVersion": "v2"
1313
}
1414
},
15-
"mounts": [
16-
// 方案 A: 如果你想利用 Codespaces 的临时空间 (非持久化,重启后数据丢失,但空间大)
17-
"source=docker-data-hack,target=/var/lib/docker,type=volume",
18-
19-
// 方案 B (推荐): 利用工作区的大磁盘 (持久化)
20-
// 注意:这会在你的项目目录下创建一个 .docker-data 文件夹,可能会很大
21-
// "source=${localWorkspaceFolder}/.docker-data,target=/var/lib/docker,type=bind"
22-
],
15+
16+
// ❌ 不要在这里挂载 /var/lib/docker。
17+
// 我们要使用容器内部的 /tmp (118GB),而不是宿主机的卷。
18+
"mounts": [],
2319

2420
"hostRequirements": {
2521
"cpus": 4
2622
},
2723

28-
// 🔴 修正 1:改为 true,告诉 VS Code 我们要覆盖默认的 CMD
24+
// 覆盖默认 CMD,确保容器不会退出
2925
"overrideCommand": true,
30-
31-
// 🔴 修正 2:显式指定一个“不死”的命令
32-
// docker-in-docker 的脚本会作为 entrypoint 运行,然后它会执行这里的 command
3326
"command": ["sleep", "infinity"],
3427

3528
"customizations": {
@@ -40,9 +33,12 @@
4033
}
4134
},
4235

43-
// 🔴 修正 3:确保日志重定向正确,避免 permission denied 或找不到路径
44-
// 建议输出到 /tmp 或用户目录下
45-
"postStartCommand": "sudo nohup gomtm entrypoint --mtgate-url=https://mtgateapi.yuepa8.com > /tmp/gomtm-start.log 2>&1 &",
36+
// ✅ 核心魔法:使用一段 Shell 脚本作为 postStartCommand
37+
// 逻辑:
38+
// 1. 检查 Docker 是否已经使用了 /tmp/docker-root
39+
// 2. 如果没用,则执行"PID修复+配置修改+服务重启" (复刻了你验证成功的逻辑)
40+
// 3. 最后启动 gomtm
41+
"postStartCommand": "sudo bash -c 'if [[ $(docker info --format \"{{.DockerRootDir}}\") != \"/tmp/docker-root\" ]]; then echo \"Moving Docker to /tmp...\"; echo $(pidof dockerd) > /var/run/docker-ssd.pid; service docker stop; echo \"{\\\"data-root\\\": \\\"/tmp/docker-root\\\", \\\"storage-driver\\\": \\\"overlay2\\\"}\" > /etc/docker/daemon.json; mkdir -p /tmp/docker-root; service docker start; while ! docker info >/dev/null 2>&1; do sleep 1; done; fi' && sudo nohup gomtm entrypoint --mtgate-url=https://mtgateapi.yuepa8.com > /tmp/gomtm-start.log 2>&1 &",
4642

4743
"postAttachCommand": "gomtm upgrade && gomtm install --dev"
4844
}

0 commit comments

Comments
 (0)