fix: podman can't deploy
This commit is contained in:
28
README.md
28
README.md
@@ -52,7 +52,7 @@ docker compose up -d --build # 构建并启动 mariadb + backend + frontend
|
||||
# 后端:http://localhost:8080
|
||||
docker compose ps # 查看健康状态
|
||||
docker compose down # 停止容器,保留数据库数据卷
|
||||
docker compose down -v # 停止并清空数据库(下次启动重建演示数据)
|
||||
docker compose down -v # 停止容器并删除数据目录(下次启动重建演示数据)
|
||||
```
|
||||
|
||||
- 编排:`mariadb:11.4`(数据持久化到命名卷)+ 后端多阶段构建镜像(JRE 21,非 root 运行)+ Nginx 前端镜像
|
||||
@@ -77,10 +77,24 @@ Error: "lab-backend" is not a valid container, cannot be used as a dependency ..
|
||||
而系统未配置 `unqualified-search-registries`。**先显式构建镜像即可解决**:
|
||||
|
||||
```bash
|
||||
./scripts/podman-deploy.sh up # 一键:构建镜像 -> 启动 -> 健康检查 -> 打印访问地址
|
||||
./scripts/podman-deploy.sh down # 停止(保留数据库数据卷)
|
||||
./scripts/podman-deploy.sh down-v # 停止并清空数据库
|
||||
./scripts/podman-deploy.sh logs # 查看日志
|
||||
./scripts/podman-deploy.sh up # 一键:构建镜像 -> 按序启动 -> 健康检查 -> 打印访问地址
|
||||
./scripts/podman-deploy.sh status # 查看容器状态
|
||||
./scripts/podman-deploy.sh down # 停止(保留数据目录)
|
||||
./scripts/podman-deploy.sh down-v # 停止并删除数据目录(重建演示数据)
|
||||
./scripts/podman-deploy.sh logs # 跟踪后端日志
|
||||
./scripts/podman-deploy.sh diagnose # 部署失败时输出诊断信息(镜像/容器/日志)
|
||||
```
|
||||
|
||||
脚本做了三件关键的事,规避 podman-compose 的兼容性问题:
|
||||
|
||||
1. `podman build` 显式构建 `lab-backend:latest` / `lab-frontend:latest`,避免短名拉取;
|
||||
2. `up -d --no-deps` 按「数据库 → 后端 → 前端」逐个启动并等待就绪,绕过 compose 依赖查找;
|
||||
3. `down` 直接按容器名清理,避免对不存在容器的报错噪音。
|
||||
|
||||
若已有历史失败状态,先清理再重来:
|
||||
|
||||
```bash
|
||||
./scripts/podman-deploy.sh down-v && ./scripts/podman-deploy.sh up
|
||||
```
|
||||
|
||||
手动等价步骤:
|
||||
@@ -101,7 +115,9 @@ Podman 注意事项:
|
||||
`~/.config/containers/registries.conf` 配置 `unqualified-search-registries = ["docker.io"]`
|
||||
- **旧版 podman-compose**:若提示不支持 `depends_on.condition`,请升级到 1.0.6+,
|
||||
或先 `podman-compose up -d mariadb`,等数据库健康后再 `podman-compose up -d backend frontend`
|
||||
- **SELinux(Fedora/RHEL)**:本项目只使用命名卷,无需额外 `:Z` 标记;如自定义 bind mount 请自行加 `:Z`
|
||||
- **数据目录**:数据库数据以 bind mount 方式保存在 `DATA_DIR`(默认 `./mariadb-data`,已在
|
||||
`.gitignore` 中忽略),`down-v` 会删除该目录;目录中含历史 binlog 等文件时属正常现象
|
||||
- **SELinux(Fedora/RHEL)**:挂载已带 `:Z` 自动打标;若自定义其他 bind mount 请同样加 `:Z`
|
||||
|
||||
### 5. 演示账号
|
||||
|
||||
|
||||
Reference in New Issue
Block a user