ocaml/opamOCaml Docker基础镜像是预安装opam包管理器及特定OCaml编译器版本的Docker镜像。该镜像主要用于OCaml生态的持续测试系统,同时也可作为OCaml项目的开发基础镜像(注:作为开发镜像使用时可能存在部分使用限制,详见注意事项)。
⚠️ 以下仓库已停止更新:
ocaml/opam2、ocaml/opam2-staging、ocurrent/opam和ocaml/ocaml。如需获取最新镜像,请使用当前仓库ocaml/opam。
镜像每周通过OCurrent 流水线自动更新,其构建日志可通过Web界面查看。
opam:镜像默认以非root用户opam运行,UID/GID为1000。arm、x86、ppc等架构。镜像标签遵循特定命名规则,用于标识发行版、版本及OCaml配置。以下为详细说明:
最详细的标签包含发行版版本与OCaml版本,格式为:
ocaml/opam:<distro>-<version>-ocaml-<ocaml-version>
例如:ocaml/opam:debian-10-ocaml-4.12
debian、ubuntu)自动指向该发行版的最新版本与最新OCaml编译器。ocaml/opam:debian等价于ocaml/opam:debian-11-ocaml-4.14。ocaml-4.11)指向该主版本的最新补丁版(如4.11.X)。<distro>-ocaml-<version>-<option>,例如debian-ocaml-4.14-flambda(启用flambda)。| 发行版 | 标签规则 | 示例标签 |
|---|---|---|
| Debian | debian-<version>(version为发行版代号/版本号) | debian-11、debian-sid |
| Arch Linux | 滚动发行版,仅archlinux标签 | archlinux |
| Ubuntu | ubuntu(最新版本)、ubuntu-lts(最新LTS版本) | ubuntu、ubuntu-lts |
| Windows | windows-mingw-<version>(MinGW-w64环境)、windows-msvc-<version>(MSVC环境) | windows-mingw-2022、windows-msvc-2022 |
镜像标签通过ocaml-version和ocaml-dockerfile工具生成。所有标签可在Docker Hub查看。
ocaml-base-compiler.4.14.1)。/home/opam/opam-repository。opam(UID/GID 1000),镜像默认以此用户执行命令。由于默认用户为opam,在Dockerfile中操作文件时需注意权限:
COPY --chown=opam <src> <dst>确保opam用户有权访问。USER root切换,操作完成后建议切回opam。通过以下命令启动交互式容器:
bash# 使用最新Debian与OCaml docker run -it ocaml/opam:debian # 使用特定版本(如Debian 11 + OCaml 4.14) docker run -it ocaml/opam:debian-11-ocaml-4.14 # 使用Windows MinGW环境(需Docker支持Windows容器) docker run -it ocaml/opam:windows-mingw-2022
以下为基于该镜像构建OCaml项目的Dockerfile示例:
dockerfile# 基础镜像:最新Ubuntu LTS + OCaml FROM ocaml/opam:ubuntu-lts # 切换到root用户安装系统依赖 USER root RUN apt-get update && apt-get install -y libssl-dev # 切换回opam用户,复制项目文件(确保权限) USER opam WORKDIR /home/opam/my-project COPY --chown=opam . . # 安装依赖并构建项目 RUN opam install . --deps-only -y && dune build
为确保构建一致性,可通过镜像SHA256哈希指定具体版本(可在Docker Hub标签页获取):
yaml# GitLab CI示例 build: image: ocaml/opam@sha256:abc123... # 替换为实际SHA256哈希 script: - opam install . --deps-only - dune test
以下仓库已停止更新,请勿使用:
ocaml/opam2、ocaml/opam2-stagingocurrent/opam、ocaml/ocaml作为开发镜像时可能存在部分限制,建议:
ubuntu)会随发行版更新自动指向新版本,若需固定环境,建议使用完整版本标签(如ubuntu-22.04-ocaml-4.14)。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务