Closed mattam82 closed 2 years ago
The error is:
Error response from daemon: manifest for coqorg/coq:dev not found: manifest unknown: manifest unknown
AFAIK this has been happening for a while. The workaround is to use the flmabda version as you said.
Well, Coq master doesn't compile anymore with OCaml 4.07 since it now requires OCaml >= 4.09. The dev images needs to be updated.
Hi @mattam82 @Alizter @Zimmi48 @proux01 @palmskog @gares (sorry if I forget usernames)
Indeed, thanks for opening this issue.
To give more feedback: up to now, all docker-coq tags not specifying an ocaml version, like coqorg/coq:8.15
or coqorg/coq:dev
:
were bundling two different ocaml switches (typically 4.05.0 and 4.07.1+flambda) by default.
(This was the choice made very earlier, when we devised of the architecture of docker-coq images with @ejgallego and @Zimmi48, but it appeared later on that indeed, it is much simpler and efficient to have 2 different images and pull 1 of them, rather than pulling a bigger image and doing opam switch STH
inside. But this choice had been kept partially, for compatibility.)
With the recent end-of-support by coq master for both 4.05.0 and 4.07.1, keeping coqorg/coq:dev
available did not make sense anymore w.r.t. the continuous deployment.
So I removed them, in favor of e.g.:
which are still continuously updated at each PR merged in master.
But definitely, the plan is to make such a "short tag" (also known as "default docker-coq tag") available anew for coqorg/coq:dev
, with a single switch, for an appropriate ocaml version (the ocaml version chosen in Coq platform for instance), and likewise (for uniformity) for all docker-coq tags.
This requires a non trivial refactoring of images.yml
specs and Dockerfile (and it needs to be propagated to mathcomp images and proofgeneral images), which explains why, by lack of time, I wasn't able to do this right away when coq's ocaml-4.07 end-of-support patch was merged.
Anyway, I implemented a large part of it today, and I hope to have all this going live for Monday 🤞, then ideally adding some automation ✨ (to e.g. receive an automatic notification when a new ocaml version is released, impacting docker-coq w.r.t. its ocaml-version policy that had been documented in the wiki).
I'll post anew in this issue when there's some news ^^
The PR that solves this is now merged, and the corresponding pipeline is on-going:
~https://gitlab.com/coq-community/docker-coq/-/pipelines/562743090~ (parent pipeline) https://gitlab.com/coq-community/docker-coq/-/pipelines/562745107 (generated child pipeline)
Once it is completed (in ~30'), docker pull coqorg/coq:dev
should be OK anew (with 4.13.1+flambda).
Will check mathcomp images afterwards.
Done, and FYI here is the contents of coqorg/coq:dev
and coqorg/coq:latest
now:
docker run --pull always -it --rm coqorg/coq:dev opam list
docker run --pull always -it --rm coqorg/coq:latest opam list
FTR, these two images (like all other ones) are mono-switch. As a result, they are around 30% smaller:
docker-coq image | compressed size / Docker Hub | total size (§) |
---|---|---|
~coqorg/coq:8.15.1 (dual switch)~ |
1.39 GB | 4.5 GB |
coqorg/coq:8.15.2 (4.07.1+flambda) |
979 MB | 3.17 GB |
(§) the total size (indicated by $ docker images
) is the cumulative space taken up by the image and all its parent images, once they are pulled by a docker client, but it should be noted that pulling two similar images that share common layers will involve deduplication.
FWIW:
docker-coq image | compressed size / Docker Hub | total size |
---|---|---|
coqorg/coq:dev (4.13.1+flambda) |
1.13 GB | 2.88 GB |
For the list of all available images, see https://hub.docker.com/r/coqorg/coq#supported-tags as usual.
And just FYI, I've just updated the Docker-Coq wiki accordingly:
https://github.com/coq-community/docker-coq/wiki#ocaml-versions-policy
Currently, I don't know why:
coqorg/coq:dev-ocaml-4.07-flambda
also fails, but one can getcoqorg/coq:dev-ocaml-4.12-flambda