Organisationsocurrentocaml-dockerfile2e6e3c ()opensuse-15.6-4.14_opam-2.5

opensuse-15.6-4.14_opam-2.5

Logs

Show full logs
2026-01-26 17:30.09: New job: test ocurrent/ocaml-dockerfile https://github.com/ocurrent/ocaml-dockerfile.git#refs/pull/257/head (2e6e3c3ef851bdec92d75d3534fd248736c5f2a8) (linux-x86_64:opensuse-15.6-4.14_opam-2.5)
Base: ocaml/opam:opensuse-15.6-ocaml-4.14@sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a
Opam project build

To reproduce locally:

git clone --recursive "https://github.com/ocurrent/ocaml-dockerfile.git" && cd "ocaml-dockerfile" && git fetch origin "refs/pull/257/head" && git reset --hard 2e6e3c3e
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:opensuse-15.6-ocaml-4.14@sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a
# opensuse-15.6-4.14_opam-2.5
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
WORKDIR /src
RUN sudo chown opam /src
RUN cd ~/opam-repository && (git cat-file -e 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 dockerfile.opam dockerfile-opam.opam dockerfile-cmd.opam ./
RUN opam pin add -yn dockerfile.dev './' && \
    opam pin add -yn dockerfile-opam.dev './' && \
    opam pin add -yn dockerfile-cmd.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bos.0.2.1 cmdliner.2.1.0 csexp.1.5.2 dune.3.21.0 dune-configurator.3.21.0 fmt.0.11.0 fpath.0.7.3 logs.0.10.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.3 ocamlbuild.0.16.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 ppx_sexp_conv.v0.16.0 ppxlib.0.35.0 re.1.14.0 rresult.0.7.0 sexplib0.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.5 --depext-only -y dockerfile.dev dockerfile-opam.dev dockerfile-cmd.dev $DEPS
RUN opam install $DEPS
COPY --chown=1000:1000 . /src
RUN opam exec -- dune build @install @check @runtest && rm -rf _build

END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK

2026-01-26 17:30.09: Using cache hint "ocurrent/ocaml-dockerfile-ocaml/opam:opensuse-15.6-ocaml-4.14@sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a-opensuse-15.6-4.14_opam-2.5-1680413fc72ac4b2796a2dddf8c0686f"
2026-01-26 17:30.09: Using OBuilder spec:
((from ocaml/opam:opensuse-15.6-ocaml-4.14@sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a)
 (comment opensuse-15.6-4.14_opam-2.5)
 (user (uid 1000) (gid 1000))
 (env CLICOLOR_FORCE 1)
 (env OPAMCOLOR always)
 (workdir /src)
 (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam"))
 (run (shell "opam init --reinit -ni"))
 (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
 (workdir /src)
 (run (shell "sudo chown opam /src"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "cd ~/opam-repository && (git cat-file -e 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && git log --no-decorate -n1 --oneline && opam update -u"))
 (copy (src dockerfile.opam dockerfile-opam.opam dockerfile-cmd.opam)
       (dst ./))
 (run (network host)
      (shell  "opam pin add -yn dockerfile.dev './' && \
             \nopam pin add -yn dockerfile-opam.dev './' && \
             \nopam pin add -yn dockerfile-cmd.dev './'"))
 (run (network host)
      (shell "echo '(lang dune 3.0)' > './dune-project'"))
 (env DEPS "alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bos.0.2.1 cmdliner.2.1.0 csexp.1.5.2 dune.3.21.0 dune-configurator.3.21.0 fmt.0.11.0 fpath.0.7.3 logs.0.10.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.3 ocamlbuild.0.16.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 ppx_sexp_conv.v0.16.0 ppxlib.0.35.0 re.1.14.0 rresult.0.7.0 sexplib0.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4")
 (env CI true)
 (env OCAMLCI true)
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y dockerfile.dev dockerfile-opam.dev dockerfile-cmd.dev $DEPS"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "opam install $DEPS"))
 (copy (src .) (dst /src))
 (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
)

2026-01-26 17:30.09: Waiting for resource in pool OCluster
2026-01-26 17:30.09: Waiting for worker…
2026-01-26 17:30.09: Got resource from pool OCluster
Building on clete
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint: 	git branch -m <name>
Initialized empty Git repository in /var/cache/obuilder/ocluster/git/ocaml-dockerfile.git-489d0881ca9978cde47add109eb9f1ad2decb1d2/.git/
HEAD is now at 2e6e3c3 Remove fdopen's opam

(from ocaml/opam:opensuse-15.6-ocaml-4.14@sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a)
Unable to find image 'ocaml/opam:opensuse-15.6-ocaml-4.14@sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a' locally
docker.io/ocaml/opam@sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a: Pulling from ocaml/opam
d358089470df: Pulling fs layer
3df71b9b3e7f: Pulling fs layer
b997bd420a3c: Pulling fs layer
12d178b9321a: Pulling fs layer
023fa28c6b25: Pulling fs layer
735e4d9b87e0: Pulling fs layer
6542116374a0: Pulling fs layer
44c143ceab21: Pulling fs layer
73d9c6c0a253: Pulling fs layer
dcc99122ebd7: Pulling fs layer
3df71b9b3e7f: Waiting
5eb9e4eb1e0d: Pulling fs layer
9bf67a7d90d1: Pulling fs layer
b997bd420a3c: Waiting
4e169419decb: Pulling fs layer
12d178b9321a: Waiting
73d9c6c0a253: Waiting
023fa28c6b25: Waiting
dcc99122ebd7: Waiting
83236c382b5f: Pulling fs layer
735e4d9b87e0: Waiting
e9abdc611934: Pulling fs layer
5856cf582d06: Pulling fs layer
487cfb4f2ade: Pulling fs layer
f161a5c7d41a: Pulling fs layer
5eb9e4eb1e0d: Waiting
6542116374a0: Waiting
44c143ceab21: Waiting
752c4eefe314: Pulling fs layer
4f4fb700ef54: Pulling fs layer
487cfb4f2ade: Waiting
f161a5c7d41a: Waiting
8574634fb855: Pulling fs layer
4e169419decb: Waiting
9bf67a7d90d1: Waiting
45ffc9a6e835: Pulling fs layer
4f4fb700ef54: Waiting
9b2e97c90544: Pulling fs layer
8574634fb855: Waiting
752c4eefe314: Waiting
45ffc9a6e835: Waiting
5856cf582d06: Waiting
6f4caa19f8ea: Pulling fs layer
01fa1df0cfec: Pulling fs layer
24ce8b1b4144: Pulling fs layer
1d7b4875e8fa: Pulling fs layer
5abf41dc1464: Pulling fs layer
d5d3780fe7b4: Pulling fs layer
24ce8b1b4144: Waiting
1d7b4875e8fa: Waiting
6f4caa19f8ea: Waiting
9b2e97c90544: Waiting
5abf41dc1464: Waiting
01fa1df0cfec: Waiting
64d6876b8f1b: Pulling fs layer
d5d3780fe7b4: Waiting
8d4ce630c014: Pulling fs layer
1ac83bafd18d: Pulling fs layer
87088f8e69bd: Pulling fs layer
64d6876b8f1b: Waiting
653f0ca87c5a: Pulling fs layer
86b7aeb0fb7e: Pulling fs layer
1ac83bafd18d: Waiting
87088f8e69bd: Waiting
3d67e4541f01: Pulling fs layer
8b29fa24d7dc: Pulling fs layer
8d4ce630c014: Waiting
86b7aeb0fb7e: Waiting
3d67e4541f01: Waiting
c3b051d5b40a: Pulling fs layer
cea0ae7b006a: Pulling fs layer
423ca6061d72: Pulling fs layer
8b29fa24d7dc: Waiting
4b16ecf8eaf2: Pulling fs layer
c3b051d5b40a: Waiting
cea0ae7b006a: Waiting
423ca6061d72: Waiting
3c0e8f4c1ce7: Pulling fs layer
3c0e8f4c1ce7: Waiting
3df71b9b3e7f: Download complete
d358089470df: Verifying Checksum
d358089470df: Download complete
b997bd420a3c: Verifying Checksum
b997bd420a3c: Download complete
023fa28c6b25: Download complete
735e4d9b87e0: Verifying Checksum
735e4d9b87e0: Download complete
d358089470df: Pull complete
3df71b9b3e7f: Pull complete
6542116374a0: Verifying Checksum
6542116374a0: Download complete
44c143ceab21: Verifying Checksum
44c143ceab21: Download complete
73d9c6c0a253: Download complete
12d178b9321a: Verifying Checksum
12d178b9321a: Download complete
dcc99122ebd7: Verifying Checksum
dcc99122ebd7: Download complete
5eb9e4eb1e0d: Verifying Checksum
5eb9e4eb1e0d: Download complete
9bf67a7d90d1: Verifying Checksum
9bf67a7d90d1: Download complete
4e169419decb: Verifying Checksum
4e169419decb: Download complete
83236c382b5f: Verifying Checksum
83236c382b5f: Download complete
e9abdc611934: Verifying Checksum
e9abdc611934: Download complete
487cfb4f2ade: Verifying Checksum
487cfb4f2ade: Download complete
f161a5c7d41a: Verifying Checksum
f161a5c7d41a: Download complete
752c4eefe314: Verifying Checksum
752c4eefe314: Download complete
4f4fb700ef54: Download complete
5856cf582d06: Verifying Checksum
5856cf582d06: Download complete
8574634fb855: Verifying Checksum
8574634fb855: Download complete
9b2e97c90544: Verifying Checksum
9b2e97c90544: Download complete
45ffc9a6e835: Verifying Checksum
45ffc9a6e835: Download complete
6f4caa19f8ea: Download complete
01fa1df0cfec: Verifying Checksum
01fa1df0cfec: Download complete
24ce8b1b4144: Download complete
1d7b4875e8fa: Download complete
5abf41dc1464: Verifying Checksum
5abf41dc1464: Download complete
d5d3780fe7b4: Verifying Checksum
d5d3780fe7b4: Download complete
64d6876b8f1b: Download complete
8d4ce630c014: Verifying Checksum
8d4ce630c014: Download complete
1ac83bafd18d: Download complete
653f0ca87c5a: Verifying Checksum
653f0ca87c5a: Download complete
3d67e4541f01: Verifying Checksum
3d67e4541f01: Download complete
8b29fa24d7dc: Verifying Checksum
8b29fa24d7dc: Download complete
c3b051d5b40a: Download complete
b997bd420a3c: Pull complete
cea0ae7b006a: Verifying Checksum
cea0ae7b006a: Download complete
423ca6061d72: Verifying Checksum
423ca6061d72: Download complete
86b7aeb0fb7e: Verifying Checksum
86b7aeb0fb7e: Download complete
4b16ecf8eaf2: Download complete
3c0e8f4c1ce7: Verifying Checksum
3c0e8f4c1ce7: Download complete
87088f8e69bd: Verifying Checksum
87088f8e69bd: Download complete
12d178b9321a: Pull complete
023fa28c6b25: Pull complete
735e4d9b87e0: Pull complete
6542116374a0: Pull complete
44c143ceab21: Pull complete
73d9c6c0a253: Pull complete
dcc99122ebd7: Pull complete
5eb9e4eb1e0d: Pull complete
9bf67a7d90d1: Pull complete
4e169419decb: Pull complete
83236c382b5f: Pull complete
e9abdc611934: Pull complete
5856cf582d06: Pull complete
487cfb4f2ade: Pull complete
f161a5c7d41a: Pull complete
752c4eefe314: Pull complete
4f4fb700ef54: Pull complete
8574634fb855: Pull complete
45ffc9a6e835: Pull complete
9b2e97c90544: Pull complete
6f4caa19f8ea: Pull complete
01fa1df0cfec: Pull complete
24ce8b1b4144: Pull complete
1d7b4875e8fa: Pull complete
5abf41dc1464: Pull complete
d5d3780fe7b4: Pull complete
64d6876b8f1b: Pull complete
8d4ce630c014: Pull complete
1ac83bafd18d: Pull complete
87088f8e69bd: Pull complete
653f0ca87c5a: Pull complete
86b7aeb0fb7e: Pull complete
3d67e4541f01: Pull complete
8b29fa24d7dc: Pull complete
c3b051d5b40a: Pull complete
cea0ae7b006a: Pull complete
423ca6061d72: Pull complete
4b16ecf8eaf2: Pull complete
3c0e8f4c1ce7: Pull complete
Digest: sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a
Status: Downloaded newer image for ocaml/opam@sha256:ea5399b7a2ec2e4b64fcb77acf78d21ada08de36289328f93e71f81b9e933a1a
2026-01-26 17:30.10 ---> using "0063fda8739f5f8013b4d7431f310f1304f8d8914c38c2397f6b381aa46ec273" from cache

/: (comment opensuse-15.6-4.14_opam-2.5)

/: (user (uid 1000) (gid 1000))

/: (env CLICOLOR_FORCE 1)

/: (env OPAMCOLOR always)

/: (workdir /src)

/src: (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam"))
2026-01-26 17:30.10 ---> using "38c94d6827ebe412f2996750507451699f5f6621b86121d2281595f46abbeb9c" from cache

/src: (run (shell "opam init --reinit -ni"))
Configuring from /home/opam/.opamrc and then from built-in defaults.
Checking for available remotes: rsync and local, git.
  - you won't be able to use mercurial repositories unless you install the hg command on your system.
  - you won't be able to use darcs repositories unless you install the darcs command on your system.

This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.

[NOTE] The 'jobs' option was reset, its value was 255 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
           opam option jobs=255 --global
Continue? [Y/n] y
Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-01-26 17:30.10 ---> using "11af852d0112950e5f30d06d0c0eda86bd0aeb88bb02db838fc7d88a6dbbf398" from cache

/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 6.8.0-90-generic
The OCaml toplevel, version 4.14.2
2.5.0
2026-01-26 17:30.10 ---> using "c101ebfd6750326d6b9e77d3ee16fb4be1f1789cbaa7cebc13cb42335a75cdd1" from cache

/src: (workdir /src)

/src: (run (shell "sudo chown opam /src"))
2026-01-26 17:30.10 ---> using "18f59f94c3b99255205c86b6546e12704fb12d85a0ee3562cc1d3f20623ec97d" from cache

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "cd ~/opam-repository && (git cat-file -e 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
 * branch                  master     -> FETCH_HEAD
   235b964523..f9f7db30fd  master     -> origin/master
873cb18c37 Merge pull request #29216 from shonfeder/release-dune-3.21.0

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from git+file:///home/opam/opam-repository

Everything as up-to-date as possible (run with --verbose to show unavailable upgrades).
However, you may "opam upgrade" these packages explicitly at these versions (e.g. "opam upgrade ocaml.5.4.0"), which will ask permission to downgrade or uninstall the conflicting packages.
Nothing to do.
# To update the current shell environment, run: eval $(opam env)
2026-01-26 17:30.10 ---> using "1ded90497a2a0faa2c45be6787986df73ad59cbba7617a7564b711cd17acc0d3" from cache

/src: (copy (src dockerfile.opam dockerfile-opam.opam dockerfile-cmd.opam)
            (dst ./))
2026-01-26 17:30.10 ---> saved as "a76ddec6566a3d5ada37329f6095aea1b35d11119eceb7bd71f5a195b54216c6"

/src: (run (network host)
           (shell  "opam pin add -yn dockerfile.dev './' && \
                  \nopam pin add -yn dockerfile-opam.dev './' && \
                  \nopam pin add -yn dockerfile-cmd.dev './'"))
[dockerfile.dev] synchronised (file:///src)
dockerfile is now pinned to file:///src (version dev)
[dockerfile-opam.dev] synchronised (file:///src)
dockerfile-opam is now pinned to file:///src (version dev)
[dockerfile-cmd.dev] synchronised (file:///src)
dockerfile-cmd is now pinned to file:///src (version dev)
2026-01-26 17:30.12 ---> saved as "be5e06150d837cd0df72b69425a3b74788237eb6b25a940b2d6ab6542ce7b454"

/src: (run (network host)
           (shell "echo '(lang dune 3.0)' > './dune-project'"))
2026-01-26 17:30.12 ---> saved as "9e25b6d84a3906f7c557c0a951112ec8ba9ab7c5da798651732bde5d1444fa3d"

/src: (env DEPS "alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bos.0.2.1 cmdliner.2.1.0 csexp.1.5.2 dune.3.21.0 dune-configurator.3.21.0 fmt.0.11.0 fpath.0.7.3 logs.0.10.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.3 ocamlbuild.0.16.1 ocamlfind.1.9.8 ppx_derivers.1.2.1 ppx_sexp_conv.v0.16.0 ppxlib.0.35.0 re.1.14.0 rresult.0.7.0 sexplib0.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4")

/src: (env CI true)

/src: (env OCAMLCI true)

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y dockerfile.dev dockerfile-opam.dev dockerfile-cmd.dev $DEPS"))
+ /usr/bin/sudo "zypper" "--non-interactive" "refresh"
- Retrieving repository 'Update repository of openSUSE Backports' metadata [..
- Looking for gpg keys in repository Update repository of openSUSE Backports.
-   gpgkey=http://download.opensuse.org/update/leap/15.6/backports/repodata/repomd.xml.key
- ...
- .....
- ....
- ....
- ....
- ....
- ............done]
- Building repository 'Update repository of openSUSE Backports' cache [..
- ..done]
- Retrieving repository 'Update repository with updates from SUSE Linux Enterprise 15' metadata [..
- Looking for gpg keys in repository Update repository with updates from SUSE Linux Enterprise 15.
-   gpgkey=http://download.opensuse.org/update/leap/15.6/sle/repodata/repomd.xml.key
- ...
- .....
- ....
- ....
- ....
- ....
- ....
- ....
- ...
- ....
- ....
- ............
- ..........
- .........
- ..........
- .........
- ........
- .......
- .........
- ........
- ..........
- ..........
- ........
- ..........
- ..........
- .........
- .....done]
- Building repository 'Update repository with updates from SUSE Linux Enterprise 15' cache [..
- ..done]
- Retrieving repository 'Main Update Repository' metadata [..
- Looking for gpg keys in repository Main Update Repository.
-   gpgkey=http://download.opensuse.org/update/leap/15.6/oss/repodata/repomd.xml.key
- ..
- .....
- ....
- ....
- ....
- ....
- .............done]
- Building repository 'Main Update Repository' cache [....done]
- Retrieving repository 'Update Repository (Non-Oss)' metadata [..
- Looking for gpg keys in repository Update Repository (Non-Oss).
-   gpgkey=http://download.opensuse.org/update/leap/15.6/non-oss/repodata/repomd.xml.key
- .....
- ....
- ....
- ....
- ....
- .............done]
- Building repository 'Update Repository (Non-Oss)' cache [....done]
- Repository 'Non-OSS Repository' is up to date.
- Repository 'Main Repository' is up to date.
- All repositories have been refreshed.

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[dockerfile.dev] synchronised (file:///src)
[dockerfile-cmd.dev] synchronised (file:///src)
[dockerfile-opam.dev] synchronised (file:///src)

[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 2).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
# To update the current shell environment, run: eval $(opam env)
2026-01-26 17:31.24 ---> saved as "0a43d2e3dcbf0e33e4dfe7959172a212ea05a017ea2c3b7d852f4e3262e919fa"

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "opam install $DEPS"))
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 2).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
The following actions will be performed:
=== install 25 packages
  - install alcotest            1.9.1
  - install astring             0.8.5
  - install base                v0.16.4
  - install bos                 0.2.1
  - install cmdliner            2.1.0
  - install csexp               1.5.2
  - install dune                3.21.0
  - install dune-configurator   3.21.0
  - install fmt                 0.11.0
  - install fpath               0.7.3
  - install logs                0.10.0
  - install ocaml-compiler-libs v0.12.4
  - install ocaml-syntax-shims  1.0.0
  - install ocaml-version       4.0.3
  - install ocamlbuild          0.16.1
  - install ocamlfind           1.9.8
  - install ppx_derivers        1.2.1
  - install ppx_sexp_conv       v0.16.0
  - install ppxlib              0.35.0
  - install re                  1.14.0
  - install rresult             0.7.0
  - install sexplib0            v0.16.0
  - install stdlib-shims        0.3.0
  - install topkg               1.1.1
  - install uutf                1.0.4

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved base.v0.16.4  (cached)
-> retrieved bos.0.2.1  (cached)
-> retrieved cmdliner.2.1.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved logs.0.10.0  (cached)
-> retrieved ocaml-compiler-libs.v0.12.4  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocaml-version.4.0.3  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved ppx_derivers.1.2.1  (cached)
-> retrieved ppx_sexp_conv.v0.16.0  (https://opam.ocaml.org/cache)
-> retrieved re.1.14.0  (cached)
-> retrieved rresult.0.7.0  (cached)
-> retrieved sexplib0.v0.16.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved uutf.1.0.4  (cached)
-> retrieved ppxlib.0.35.0  (https://opam.ocaml.org/cache)
-> retrieved dune.3.21.0, dune-configurator.3.21.0  (cached)
-> installed cmdliner.2.1.0
-> installed ocamlbuild.0.16.1
-> installed ocamlfind.1.9.8
-> installed topkg.1.1.1
-> installed rresult.0.7.0
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed logs.0.10.0
-> installed fpath.0.7.3
-> installed bos.0.2.1
-> installed dune.3.21.0
-> installed ppx_derivers.1.2.1
-> installed csexp.1.5.2
-> installed ocaml-compiler-libs.v0.12.4
-> installed ocaml-syntax-shims.1.0.0
-> installed ocaml-version.4.0.3
-> installed re.1.14.0
-> installed sexplib0.v0.16.0
-> installed stdlib-shims.0.3.0
-> installed alcotest.1.9.1
-> installed dune-configurator.3.21.0
-> installed base.v0.16.4
-> installed ppxlib.0.35.0
-> installed ppx_sexp_conv.v0.16.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-01-26 17:32.11 ---> saved as "60f98bca829e90b2ad1a20d07fe93e36cf7b186bca2ba15bac853af3471096a0"

/src: (copy (src .) (dst /src))
2026-01-26 17:32.11 ---> saved as "ca90f7b94534f59b3ed8df0a3b5a0bbc9352240de7121c22f1de803943217309"

/src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
(cd _build/default/test && ./dockerfile.exe)
Testing `test'.
This run has ID `YOAFBT1T'.

  [OK]          dockerfile          0   string_of_t.
  [OK]          dockerfile          1   string_of_t.
  [OK]          dockerfile          2   Format RUN heredocs.

Full test results in `/src/_build/default/test/_build/_tests/test'.
Test Successful in 0.000s. 3 tests run.
(cd _build/default/test-opam && ./dockerfile.exe)
Testing `test'.
This run has ID `C3GEA2XX'.

  [OK]          dockerfile-opam          0   Distro.compare.

Full test results in `/src/_build/default/test-opam/_build/_tests/test'.
Test Successful in 0.000s. 1 test run.
2026-01-26 17:32.13 ---> saved as "6fb0169989898cb847dc6cc8c18d5e8e1c0904e6ebb65444dbf2ff7da4288e88"
Job succeeded
2026-01-26 17:32.13: Job succeeded