
igwn/builder本镜像为国际引力波网络(International Gravitational-Wave Network, IGWN)项目的持续集成(Continuous Integration, CI)作业提供标准化构建环境。镜像整合了IGWN项目开发、测试与构建所需的核心依赖工具、库及运行时环境,旨在解决跨团队开发中的环境一致性问题,简化CI流水线配置,提升作业执行效率与可靠性。
libframe、lal)、引力波数据分析工具链(pycbc、gwpy)ccache、pip cache),加速重复构建gwpy、ligo-skymap)的科研团队镜像通常托管于IGWN私有容器仓库或Docker Hub(需权限访问)。通过以下命令拉取:
bashdocker pull igwn/ci-build-env:latest # 最新稳定版 # 或指定版本标签(如基于Ubuntu 22.04的版本) docker pull igwn/ci-build-env:ubuntu22.04-v1.5.0
docker run)启动容器并进入交互式终端,用于手动调试或临时构建:
bashdocker run -it --rm \ -v /path/to/local/source:/workspace/src \ # 挂载本地源码目录 -v /path/to/cache:/var/cache/ci-build # 挂载构建缓存(加速重复构建) -e WORKDIR=/workspace/src \ # 设置工作目录 -e BUILD_TARGET=release \ # 指定构建目标(release/debug/test) igwn/ci-build-env:latest \ /bin/bash # 启动bash终端
直接在容器中运行预设CI脚本(如编译+测试):
bashdocker run --rm \ -v $(pwd):/workspace \ # 挂载当前目录为工作区 -e LOG_LEVEL=info \ # 设置日志级别(debug/info/warn/error) -e HTTP_PROXY=[***] \ # 配置网络代理(如需要) igwn/ci-build-env:latest \ /opt/igwn/ci/scripts/run-build.sh # 执行内置CI脚本
创建docker-compose.yml简化多环境配置:
yamlversion: '3.8' services: igwn-ci-build: image: igwn/ci-build-env:ubuntu22.04-v1.5.0 volumes: - ./src:/workspace/src:ro # 只读挂载源码 - ci-cache:/var/cache/ci-build # 持久化缓存卷 - ./output:/workspace/output # 挂载输出目录(存放构建产物) environment: - WORKDIR=/workspace/src - BUILD_TARGET=test - LOG_LEVEL=debug - CACHE_DIR=/var/cache/ci-build command: ["/opt/igwn/ci/scripts/run-test.sh"] # 执行测试脚本 volumes: ci-cache: # 声明持久化缓存卷(避免重复下载依赖)
启动命令:
bashdocker-compose up --build # --build可选,用于强制重建(如需修改配置)
| 变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
WORKDIR | 容器内工作目录 | /workspace | 绝对路径(如/src/igwn-project) |
BUILD_TARGET | 构建目标类型 | release | release/debug/test/docs |
LOG_LEVEL | 日志输出级别 | info | debug/info/warn/error |
HTTP_PROXY | HTTP代理地址(用于网络受限环境) | 空(不启用代理) | 代理URL(如[***]) |
HTTPS_PROXY | HTTPS代理地址 | 空 | 同上 |
CACHE_DIR | 构建缓存目录(用于ccache等工具) | /var/cache/ci-build | 绝对路径 |
PYTHON_VERSION | 指定Python版本(需镜像支持多版本) | 3.10 | 3.8/3.9/3.10/3.11 |
| 挂载路径(容器内) | 用途 | 宿主机路径示例 |
|---|---|---|
/workspace/src | 源码目录(建议只读挂载) | ./project-src |
/workspace/output | 构建产物输出目录 | ./build-output |
/var/cache/ci-build | 构建缓存(加速重复构建) | ./ci-cache(持久化目录) |
/etc/igwn/ci/config.d | 自定义CI配置文件目录 | ./custom-config |
若内置CI脚本不满足需求,可挂载自定义脚本到容器并执行:
bashdocker run --rm \ -v ./my-build-script.sh:/workspace/scripts/custom-build.sh \ -v ./src:/workspace/src \ igwn/ci-build-env:latest \ bash /workspace/scripts/custom-build.sh # 执行自定义脚本
igwn-ci,UID=1000)运行,挂载宿主机目录时需确保权限匹配(可通过-u $(id -u):$(id -g)指定用户ID)。latest标签或定期更新版本号)。--cpus、--memory参数限制容器资源(如--cpus 4 --memory 8g)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务