本Docker镜像集成了OPAM(OCaml包管理器),专注于为CI(持续集成)环境提供OCaml项目的自动化构建能力。OPAM作为OCaml生态的核心依赖管理工具,能够高效处理OCaml项目的依赖解析、版本控制和环境隔离,而本镜像通过预配置OPAM及基础构建工具,简化了OCaml项目在CI流程中的依赖管理和构建流程,支持快速集成到各类CI/CD管道。
gcc、make、curl等),满足OCaml项目编译和测试需求。通过以下命令启动镜像并进入交互式终端,可用于本地调试或手动构建OCaml项目:
bash# 挂载本地项目目录并启动镜像 docker run --rm -it -v $(pwd):/project opam-ci-image bash # 在容器内初始化OPAM并构建项目 opam init -y # 初始化OPAM环境(首次使用需执行) cd /project # 进入挂载的项目目录 opam install --deps-only . # 安装项目依赖 opam exec -- dune build # 使用项目构建工具(如dune)执行构建
在项目根目录创建.github/workflows/ci.yml,集成镜像至GitHub Actions:
yamlname: OCaml CI on: [push, pull_request] jobs: build: runs-on: ubuntu-latest container: image: opam-ci-image steps: - name: Checkout code uses: actions/checkout@v4 - name: Cache OPAM dependencies uses: actions/cache@v3 with: path: ~/.opam key: ${{ runner.os }}-opam-${{ hashFiles('*.opam') }} restore-keys: | ${{ runner.os }}-opam- - name: Initialize OPAM and install dependencies run: | opam init -y --disable-sandboxing # 禁用沙箱以适配CI环境 opam install --deps-only -y . - name: Build project run: opam exec -- dune build - name: Run tests run: opam exec -- dune runtest
在项目根目录创建.gitlab-ci.yml,配置GitLab CI流程:
yamlstages: - build - test variables: OPAM_CACHE_DIR: "$CI_PROJECT_DIR/.opam-cache" cache: paths: - $OPAM_CACHE_DIR build-and-test: stage: build image: opam-ci-image script: - mkdir -p $OPAM_CACHE_DIR - ln -sf $OPAM_CACHE_DIR ~/.opam # 绑定缓存目录至OPAM根目录 - opam init -y --disable-sandboxing - opam install --deps-only -y . - opam exec -- dune build - opam exec -- dune runtest
镜像支持通过环境变量自定义行为,常用配置如下:
| 环境变量 | 说明 | 示例值 |
|---|---|---|
OCAML_VERSION | 指定默认OCaml编译器版本(需OPAM支持) | 4.14.1、5.0.0 |
OPAM_DISABLE_SANDBOXING | 设置为1禁用OPAM沙箱(CI环境推荐) | 1 |
OPAM_ROOT | 自定义OPAM根目录路径(用于缓存或持久化) | /ci-cache/.opam |
OPAM_DEPEXT_FLAGS | 传递给opam depext的额外参数(如-u升级系统依赖) | -u -y |
~/.opam),避免重复下载依赖,大幅缩短构建时间。--disable-sandboxing或OPAM_DISABLE_SANDBOXING=1禁用OPAM沙箱。libssl),可通过opam depext <package>自动安装,需确保CI环境允许系统包管理命令(如apt、yum)执行。opam switch create <version>可创建指定OCaml版本的环境,例如opam switch create 5.1.0切换至OCaml 5.1.0。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429