Skip to content

docker_start.ps1

文档编写日期: 2026-03-20

使用办法 (Usage)

基本语法

powershell
.\scripts\build_helpers\docker_start.ps1 [OPTIONS]
```bash

### 参数说明
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `-Arch` | String | `amd64` | 目标架构,可选值: `amd64``arm64` |
| `-FastBuild` | Switch | - | 跳过镜像清理,复用已有镜像 |
| `-Interactive` | Switch | - | 进入交互式Shell (默认行为) |
| `-Verify` | Switch | - | 运行CI构建验证 |
| `-BuildProject` | Switch | - | 构建镜像 + 执行完整清理构建 |
| `-BuildProjectFast` | Switch | - | 构建镜像 + 执行快速构建 |
| `-RunProjectTest` | Switch | - | 构建镜像 + 运行测试 |
| `-StayOnError` | Switch | - | CI失败时保留容器用于调试 |
| `-NoLog` | Switch | - | 禁用文件日志 (默认记录日志) |
| `-Help` | Switch | - | 显示帮助信息 |

### 使用示例
```powershell
# 默认: 进入交互式Shell
.\scripts\build_helpers\docker_start.ps1

# 运行CI构建验证
.\scripts\build_helpers\docker_start.ps1 -Verify

# CI失败时保留容器调试
.\scripts\build_helpers\docker_start.ps1 -Verify -StayOnError

# 构建镜像 + 完整清理构建
.\scripts\build_helpers\docker_start.ps1 -BuildProject

# 构建镜像 + 快速构建
.\scripts\build_helpers\docker_start.ps1 -BuildProjectFast

# 构建镜像 + 运行测试
.\scripts\build_helpers\docker_start.ps1 -RunProjectTest

# ARM64架构构建
.\scripts\build_helpers\docker_start.ps1 -Arch arm64

# 复用已有镜像 (快速模式)
.\scripts\build_helpers\docker_start.ps1 -FastBuild

# 禁用日志记录
.\scripts\build_helpers\docker_start.ps1 -NoLog
```text

## Scripts详解

### 脚本用途
本脚本用于在Docker容器中构建CFDesktop项目,提供:
- 跨平台构建环境 (amd64/arm64)
- 隔离的编译环境
- CI构建验证
- 交互式开发环境

### 依赖模块
- **LibPaths.psm1** - 提供路径解析和项目根目录定位功能

### 配置文件
使用架构特定的CI配置文件:
- **amd64**: `build_ci_config.ini`
- **arm64**: `build_ci_aarch64_config.ini`

### 执行模式

#### 1. 交互模式 (默认)
启动容器并进入交互式bash shell:
```powershell
.\docker_start.ps1
```text
项目根目录挂载到容器内的 `/project`

#### 2. CI验证模式
运行完整的CI构建:
```powershell
.\docker_start.ps1 -Verify
```text
执行 `scripts/build_helpers/ci_build_entry.sh ci`

#### 3. 构建项目模式
- **完整构建**: 清理 + 配置 + 编译
  ```powershell
  .\docker_start.ps1 -BuildProject
  • 快速构建: 配置 + 编译 (无清理)
    powershell
    .\docker_start.ps1 -BuildProjectFast

4. 测试模式

运行项目测试:

powershell
.\docker_start.ps1 -RunProjectTest
```bash

### 架构支持

#### amd64
- 原生x86_64构建
- 使用 `linux_gcc_64` Qt版本
- 平台: `linux/amd64`

#### arm64
- ARM64原生容器
- 使用 `linux_gcc_arm64` Qt版本
- 平台: `linux/arm64`
- 在x86_64主机上使用QEMU模拟 (较慢但产生原生ARM64二进制)

### Docker镜像
- **镜像名称**: `cfdesktop-build`
- **Dockerfile**: `scripts/docker/Dockerfile.build`
- **构建上下文**: 项目根目录

### 构建参数
| 参数 | 用途 |
|------|------|
| `QT_ARCH` | Qt架构 (linux_gcc_64 / linux_gcc_arm64) |
| `INSTALL_DEPS` | 是否安装依赖 (交互模式为0) |

### 日志功能
默认启用日志记录:
- **日志目录**: `scripts/docker/logger/`
- **文件格式**: `ci_build_YYYYMMDD_HHMMSS.log`
- **内容**: 构建过程的完整输出

使用 `-NoLog` 参数禁用日志。

### 安全检查
- Docker存在性检查
- Docker守护进程运行状态检查

### 退出代码
- `0` - 操作成功
-`0` - 操作失败

### 调试功能
使用 `-StayOnError` 参数,CI构建失败时容器不会退出,可进入交互模式调试:
```powershell
.\docker_start.ps1 -Verify -StayOnError
```text

### 快速构建模式
使用 `-FastBuild` 参数复用已有镜像:
- 镜像存在时跳过构建
- 镜像不存在时才会构建

### UI输出格式
脚本使用彩色输出:
- 青色 - 标题/阶段名称
- 绿色 - 成功信息
- 红色 - 错误信息
- 黄色 - 警告信息
- 蓝色 - 强调信息
- 暗灰色 - 次要信息

### 注意事项
1. 首次运行需要构建Docker镜像,可能需要较长时间
2. ARM64构建在x86_64主机上使用QEMU模拟,速度较慢
3. 项目目录以卷挂载方式映射到容器,修改会立即生效
4. 容器内工作目录为 `/project`

Built with VitePress