fix: podman can't return even succeed
This commit is contained in:
15
README.md
15
README.md
@@ -85,11 +85,20 @@ Error: "lab-backend" is not a valid container, cannot be used as a dependency ..
|
||||
./scripts/podman-deploy.sh diagnose # 部署失败时输出诊断信息(镜像/容器/日志)
|
||||
```
|
||||
|
||||
脚本做了三件关键的事,规避 podman-compose 的兼容性问题:
|
||||
脚本做了四件关键的事,规避 podman-compose 的兼容性问题:
|
||||
|
||||
1. `podman build` 显式构建 `lab-backend:latest` / `lab-frontend:latest`,避免短名拉取;
|
||||
2. `up -d --no-deps` 按「数据库 → 后端 → 前端」逐个启动并等待就绪,绕过 compose 依赖查找;
|
||||
3. `down` 直接按容器名清理,避免对不存在容器的报错噪音。
|
||||
2. 启动前自动生成 `.podman-compose.generated.yml`(从 `docker-compose.yml` 中剔除 `depends_on`),
|
||||
避免旧版 podman-compose 在 `up` 时等待依赖健康检查而卡住;
|
||||
3. 按「数据库 → 后端 → 前端」逐个启动并等待就绪(MariaDB 用 `healthcheck.sh`,后端/前端用 HTTP 探测);
|
||||
4. `down` 直接按容器名清理,避免对不存在容器的报错噪音。
|
||||
|
||||
**防卡死**:所有外部命令都带超时,任何一步超时会打印原因并退出,不会无限等待。
|
||||
可用环境变量调节:`CMD_TIMEOUT`(单条命令,默认 60s)、`BUILD_TIMEOUT`(构建,默认 1800s)、
|
||||
`READY_TRIES`(就绪轮询次数,默认 60 次 × 2s);用 `DEBUG=1 ./scripts/podman-deploy.sh up`
|
||||
可以看到每一步实际执行的命令,定位卡在哪一步。
|
||||
|
||||
镜像已构建过时可跳过构建:`./scripts/podman-deploy.sh up --no-build`。
|
||||
|
||||
若已有历史失败状态,先清理再重来:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user