Build:
  1. 0
2026-03-07 08:49.31: New job: Build Dockerfile using linux-x86_64 in
                                [https://github.com/ocaml-opam/opam2web.git#refs/pull/194/head (895b346cbaf93f9b671fc9bbd31404a0879c09fa)]
2026-03-07 08:49.31: Using cache hint "https://github.com/ocaml-opam/opam2web.git-Dockerfile"
2026-03-07 08:49.31: Waiting for resource in pool OCluster
2026-03-07 08:49.31: Waiting for worker…
2026-03-07 08:49.32: Got resource from pool OCluster
Building on eumache
All commits already cached
Submodule path 'content/doc': checked out '13a77b2bc576763bfa469ca3ef6f139402b7357b'
HEAD is now at 895b346 Added alt text to the images at the footer
Synchronising submodule url for 'content/doc'
Cleared directory 'content/doc'
Submodule 'content/doc' (https://github.com/ocaml/opam.wiki.git) unregistered for path 'content/doc'
Submodule 'content/doc' (https://github.com/ocaml/opam.wiki.git) registered for path 'content/doc'
Submodule path 'content/doc': checked out '13a77b2bc576763bfa469ca3ef6f139402b7357b'
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 2.48kB done
#1 DONE 0.0s

#2 [internal] load .dockerignore
#2 transferring context: 2B done
#2 DONE 0.0s

#3 resolve image config for docker.io/docker/dockerfile:1
#3 DONE 0.6s

#4 docker-image://docker.io/docker/dockerfile:1@sha256:b6afd42430b15f2d2a4c5a02b919e98a525b785b1aaff16747d2f623364e39b6
#4 resolve docker.io/docker/dockerfile:1@sha256:b6afd42430b15f2d2a4c5a02b919e98a525b785b1aaff16747d2f623364e39b6 done
#4 sha256:6742480c08d7878bbb82a5f5b55d7cb17c5dea60d2068cb2bd37994f3a5c680e 1.33kB / 1.33kB done
#4 sha256:77246a01651da592b7bae79e0e20ed3b4f2e4c00a1b54b7c921c91ae3fa9ef07 0B / 13.57MB 0.1s
#4 sha256:b6afd42430b15f2d2a4c5a02b919e98a525b785b1aaff16747d2f623364e39b6 8.40kB / 8.40kB done
#4 sha256:62b0eac4b38b65f257ba2525a1bc87978b5e339d6133b5daef1bde40fe7aa10f 850B / 850B done
#4 sha256:77246a01651da592b7bae79e0e20ed3b4f2e4c00a1b54b7c921c91ae3fa9ef07 2.10MB / 13.57MB 0.3s
#4 sha256:77246a01651da592b7bae79e0e20ed3b4f2e4c00a1b54b7c921c91ae3fa9ef07 5.24MB / 13.57MB 0.5s
#4 sha256:77246a01651da592b7bae79e0e20ed3b4f2e4c00a1b54b7c921c91ae3fa9ef07 7.34MB / 13.57MB 0.6s
#4 sha256:77246a01651da592b7bae79e0e20ed3b4f2e4c00a1b54b7c921c91ae3fa9ef07 9.44MB / 13.57MB 0.7s
#4 sha256:77246a01651da592b7bae79e0e20ed3b4f2e4c00a1b54b7c921c91ae3fa9ef07 13.57MB / 13.57MB 0.8s done
#4 extracting sha256:77246a01651da592b7bae79e0e20ed3b4f2e4c00a1b54b7c921c91ae3fa9ef07 0.1s
#4 extracting sha256:77246a01651da592b7bae79e0e20ed3b4f2e4c00a1b54b7c921c91ae3fa9ef07 0.8s done
#4 DONE 1.7s

#5 [internal] load build definition from Dockerfile
#5 WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 2)
#5 WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 20)
#5 WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 43)
#5 DONE 0.0s

#6 [internal] load metadata for docker.io/ocaml/opam:alpine-3.14-ocaml-4.10
#6 DONE 1.1s

#7 [internal] load metadata for docker.io/library/alpine:3.14
#7 DONE 7.3s

#8 [internal] load .dockerignore
#8 DONE 0.0s

#9 [internal] load build context
#9 transferring context: 2.59kB done
#9 DONE 0.0s

#10 [build-opam-doc  1/14] FROM docker.io/ocaml/opam:alpine-3.14-ocaml-4.10@sha256:cac160603d123f71e9109c5de9ad1ff8eeda4c75be369ca27c3eb745dd0f4707
#10 resolve docker.io/ocaml/opam:alpine-3.14-ocaml-4.10@sha256:cac160603d123f71e9109c5de9ad1ff8eeda4c75be369ca27c3eb745dd0f4707 done
#10 sha256:f0d8413b1655f12d11dec98b49b795bec30a6c379f0163c68a2c6ef1186453fb 8.99kB / 8.99kB done
#10 sha256:cac160603d123f71e9109c5de9ad1ff8eeda4c75be369ca27c3eb745dd0f4707 770B / 770B done
#10 sha256:52010d16eddf503f8fec6c152f2d78773cbc8fc3cd9be6579b5156ac6a3614c3 530B / 530B done
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 0B / 443.08MB 1.8s
#10 ...

#11 [opam2web 1/6] FROM docker.io/library/alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed
#11 resolve docker.io/library/alpine:3.14@sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed done
#11 sha256:0f2d5c38dd7a4f4f733e688e3a6733cb5ab1ac6e3cb4603a5dd564e5bfb80eed 1.64kB / 1.64kB done
#11 sha256:71859b0c62df47efaeae4f93698b56a8dddafbf041778fd668bbd1ab45a864f8 528B / 528B done
#11 sha256:9e179bacf43c4d3428d57cf459799ba0285b901945f9eccb17b6da056d3532c7 1.47kB / 1.47kB done
#11 sha256:f7dab3ab2d6ec29aa28769bec35331fb485b5837501b1e8556413d8b5a79c9c8 2.83MB / 2.83MB 1.8s done
#11 extracting sha256:f7dab3ab2d6ec29aa28769bec35331fb485b5837501b1e8556413d8b5a79c9c8 0.4s done
#11 DONE 2.2s

#10 [build-opam-doc  1/14] FROM docker.io/ocaml/opam:alpine-3.14-ocaml-4.10@sha256:cac160603d123f71e9109c5de9ad1ff8eeda4c75be369ca27c3eb745dd0f4707
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 23.07MB / 443.08MB 4.9s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 42.99MB / 443.08MB 9.9s
#10 ...

#12 [opam2web 2/6] RUN apk add git curl rsync libstdc++
#12 0.975 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
#12 2.347 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
#12 4.570 (1/14) Installing ca-certificates (20230506-r0)
#12 4.937 (2/14) Installing brotli-libs (1.0.9-r5)
#12 5.238 (3/14) Installing nghttp2-libs (1.43.0-r0)
#12 5.253 (4/14) Installing libcurl (8.0.1-r0)
#12 5.288 (5/14) Installing curl (8.0.1-r0)
#12 5.311 (6/14) Installing expat (2.5.0-r0)
#12 5.328 (7/14) Installing pcre2 (10.36-r1)
#12 5.418 (8/14) Installing git (2.32.7-r0)
#12 ...

#10 [build-opam-doc  1/14] FROM docker.io/ocaml/opam:alpine-3.14-ocaml-4.10@sha256:cac160603d123f71e9109c5de9ad1ff8eeda4c75be369ca27c3eb745dd0f4707
#10 ...

#12 [opam2web 2/6] RUN apk add git curl rsync libstdc++
#12 10.43 (9/14) Installing libgcc (10.3.1_git20210424-r2)
#12 10.48 (10/14) Installing libstdc++ (10.3.1_git20210424-r2)
#12 10.93 (11/14) Installing libacl (2.2.53-r0)
#12 10.94 (12/14) Installing popt (1.18-r0)
#12 10.95 (13/14) Installing zstd-libs (1.4.9-r1)
#12 11.04 (14/14) Installing rsync (3.2.5-r0)
#12 11.08 Executing busybox-1.33.1-r8.trigger
#12 11.09 Executing ca-certificates-20230506-r0.trigger
#12 11.14 OK: 23 MiB in 28 packages
#12 DONE 11.4s

#10 [build-opam-doc  1/14] FROM docker.io/ocaml/opam:alpine-3.14-ocaml-4.10@sha256:cac160603d123f71e9109c5de9ad1ff8eeda4c75be369ca27c3eb745dd0f4707
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 66.06MB / 443.08MB 14.9s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 90.18MB / 443.08MB 18.5s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 114.29MB / 443.08MB 21.0s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 137.36MB / 443.08MB 23.2s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 160.43MB / 443.08MB 26.1s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 184.55MB / 443.08MB 30.8s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 208.67MB / 443.08MB 34.3s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 231.74MB / 443.08MB 36.9s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 254.80MB / 443.08MB 40.5s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 278.92MB / 443.08MB 42.5s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 301.99MB / 443.08MB 46.4s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 325.06MB / 443.08MB 49.8s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 348.13MB / 443.08MB 52.6s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 371.20MB / 443.08MB 56.3s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 394.26MB / 443.08MB 58.9s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 417.33MB / 443.08MB 61.7s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 440.40MB / 443.08MB 64.2s
#10 sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 443.08MB / 443.08MB 64.5s done
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 5.0s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 10.1s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 15.1s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 20.4s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 26.8s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 33.7s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 39.8s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 46.4s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 51.5s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 60.0s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 67.4s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 73.7s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 78.8s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 83.9s
#10 extracting sha256:31e42ffc26010e6972ba08b9bb4a92fa4afe14d6fd67951214d68c076a5e2bd3 85.2s done
#10 DONE 153.3s

#13 [build-opam2web  2/13] RUN sudo apk add g++
#13 1.047 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
#13 3.033 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
#13 ...

#14 [build-opam-doc  2/14] RUN sudo apk add cgit groff
#14 1.057 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
#14 2.270 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
#14 10.09 fetch https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
#14 ...

#13 [build-opam2web  2/13] RUN sudo apk add g++
#13 10.10 fetch https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
#13 11.01 fetch https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
#13 ...

#14 [build-opam-doc  2/14] RUN sudo apk add cgit groff
#14 11.16 fetch https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
#14 19.69 fetch https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
#14 ...

#13 [build-opam2web  2/13] RUN sudo apk add g++
#13 21.24 fetch https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
#13 24.22 OK: 229 MiB in 79 packages
#13 DONE 26.6s

#14 [build-opam-doc  2/14] RUN sudo apk add cgit groff
#14 22.79 (1/3) Installing lua5.3-libs (5.3.6-r0)
#14 23.03 (2/3) Installing cgit (1.2.3-r0)
#14 ...

#15 [build-opam2web  3/13] RUN git clone https://github.com/ocaml/opam2web --depth 1 /home/opam/opam2web
#15 0.953 Cloning into '/home/opam/opam2web'...
#15 DONE 1.5s

#16 [build-opam2web  4/13] WORKDIR /home/opam/opam2web
#16 DONE 0.2s

#14 [build-opam-doc  2/14] RUN sudo apk add cgit groff
#14 ...

#17 [build-opam2web  5/13] RUN sudo mkdir -p /opt/opam2web && sudo chown opam:opam /opt/opam2web
#17 DONE 1.0s

#14 [build-opam-doc  2/14] RUN sudo apk add cgit groff
#14 28.53 (3/3) Installing groff (1.22.4-r1)
#14 ...

#18 [build-opam2web  6/13] RUN sudo mv /usr/bin/opam-2.1 /usr/bin/opam
#18 DONE 1.7s

#19 [build-opam2web  7/13] RUN opam repo set-url default https://opam-dev.ocaml.org/
#19 ...

#14 [build-opam-doc  2/14] RUN sudo apk add cgit groff
#14 33.13 Executing busybox-1.33.1-r8.trigger
#14 33.14 OK: 240 MiB in 82 packages
#14 DONE 33.4s

#20 [build-opam-doc  3/14] RUN sudo mkdir -p /usr/local/bin     && echo -e '#!/bin/sh -e\n                echo\n                echo\n                echo "<!DOCTYPE html>"\n                echo "<HTML><HEAD><TITLE>$(basename $2 .1) manpage</TITLE></HEAD><BODY>"\n                /usr/lib/cgit/filters/html-converters/man2html <$2\n                echo "</BODY></HTML>\n'        | sudo tee /usr/local/bin/man2html     && sudo chmod a+x /usr/local/bin/man2html
#20 1.034 #!/bin/sh -e
#20 1.034                 echo
#20 1.034                 echo
#20 1.034                 echo "<!DOCTYPE html>"
#20 1.034                 echo "<HTML><HEAD><TITLE>$(basename $2 .1) manpage</TITLE></HEAD><BODY>"
#20 1.034                 /usr/lib/cgit/filters/html-converters/man2html <$2
#20 1.034                 echo "</BODY></HTML>
#20 1.034 
#20 DONE 1.0s

#21 [build-opam-doc  4/14] RUN sudo mv /usr/bin/opam-2.1 /usr/bin/opam && opam update
#21 1.354 Continue? [Y/n] y
#21 1.354 Format upgrade done.
#21 1.354 This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.1, which can't be reverted.
#21 1.354 You may want to back it up before going further.
#21 1.354 
#21 12.30 
#21 12.30 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
#21 ...

#19 [build-opam2web  7/13] RUN opam repo set-url default https://opam-dev.ocaml.org/
#19 21.81 [ERROR] Could not update repository "default": OpamDownload.Download_fail(_, "Curl failed: \"/usr/bin/curl --write-out %{http_code}\\\\n --retry 3 --retry-delay 2 --user-agent opam/2.1.3 -L -o /tmp/opam-1-17fab0/index.tar.gz.part -- https://opam-dev.ocaml.org/index.tar.gz\" exited with code 7")
#19 DONE 21.9s

#21 [build-opam-doc  4/14] RUN sudo mv /usr/bin/opam-2.1 /usr/bin/opam && opam update
#21 ...

#22 [build-opam2web  8/13] RUN opam install . --destdir /opt/opam2web
#22 3.012 Package opam2web does not exist, create as a NEW package? [Y/n] y
#22 3.013 opam2web is now pinned to git+file:///home/opam/opam2web#master (version ~dev)
#22 3.014 [ERROR] Package conflict!
#22 3.014   * Missing dependency:
#22 3.014     - ocaml >= 4.13.0
#22 3.014     no matching version
#22 3.014 
#22 3.014 No solution found, exiting
#22 ERROR: process "/bin/sh -c opam install . --destdir /opt/opam2web" did not complete successfully: exit code: 20

#21 [build-opam-doc  4/14] RUN sudo mv /usr/bin/opam-2.1 /usr/bin/opam && opam update
#21 CANCELED
------
 > [build-opam2web  8/13] RUN opam install . --destdir /opt/opam2web:
3.012 Package opam2web does not exist, create as a NEW package? [Y/n] y
3.013 opam2web is now pinned to git+file:///home/opam/opam2web#master (version ~dev)
3.014 [ERROR] Package conflict!
3.014   * Missing dependency:
3.014     - ocaml >= 4.13.0
3.014     no matching version
3.014 
3.014 No solution found, exiting
------

 4 warnings found (use docker --debug to expand):
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 43)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 6)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 2)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 20)
Dockerfile:10
--------------------
   8 |     RUN sudo mv /usr/bin/opam-2.1 /usr/bin/opam
   9 |     RUN opam repo set-url default https://opam-dev.ocaml.org/
  10 | >>> RUN opam install . --destdir /opt/opam2web
  11 |     RUN cp -r content /opt/opam2web/share/opam2web/
  12 |     RUN rm -rf /opt/opam2web/share/opam2web/lib
--------------------
ERROR: failed to solve: process "/bin/sh -c opam install . --destdir /opt/opam2web" did not complete successfully: exit code: 20
docker-build failed with exit-code 1
2026-03-07 08:53.16: Job failed: Failed: Build failed