* gitlab docker registries @ 2026-01-26 21:53 Richard Henderson 2026-01-26 22:05 ` Stefan Hajnoczi 2026-01-26 22:07 ` Pierrick Bouvier 0 siblings, 2 replies; 15+ messages in thread From: Richard Henderson @ 2026-01-26 21:53 UTC (permalink / raw) To: Alex Bennée; +Cc: qemu-devel Hiya, I noticed this today, wondering why the daily scheduled builds are failing: https://gitlab.com/qemu-project/qemu/-/jobs/12868286187 time="2026-01-26T17:34:06Z" level=fatal msg="Error parsing image name \"docker://registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross\": reading manifest latest in registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross: manifest unknown" make: *** [tests/docker/Makefile.include:54: docker-verify-emsdk-wasm-cross] Error 2 I'm not really sure what the error message means. Do we need to push a built version of emsdk-wasm-cross to gitlab, so that a manifest is present? Which doesn't make much sense, since the job is all about a weekly rebuild of the containers. r~ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-26 21:53 gitlab docker registries Richard Henderson @ 2026-01-26 22:05 ` Stefan Hajnoczi 2026-01-26 22:12 ` Pierrick Bouvier 2026-01-26 22:07 ` Pierrick Bouvier 1 sibling, 1 reply; 15+ messages in thread From: Stefan Hajnoczi @ 2026-01-26 22:05 UTC (permalink / raw) To: Richard Henderson; +Cc: Alex Bennée, qemu-devel On Mon, Jan 26, 2026 at 4:55 PM Richard Henderson <richard.henderson@linaro.org> wrote: > > Hiya, > > I noticed this today, wondering why the daily scheduled builds are failing: > > https://gitlab.com/qemu-project/qemu/-/jobs/12868286187 > > time="2026-01-26T17:34:06Z" level=fatal msg="Error parsing image name > \"docker://registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross\": reading manifest > latest in registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross: manifest unknown" > make: *** [tests/docker/Makefile.include:54: docker-verify-emsdk-wasm-cross] Error 2 > > I'm not really sure what the error message means. Do we need to push a built version of > emsdk-wasm-cross to gitlab, so that a manifest is present? Which doesn't make much sense, > since the job is all about a weekly rebuild of the containers. I don't see that container image in the registry: https://gitlab.com/qemu-project/qemu/container_registry?orderBy=UPDATED&sort=desc&search[]=wasm Only the emsdk-wasm32-cross and emsdk-wasm64-cross images are there. Stefan ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-26 22:05 ` Stefan Hajnoczi @ 2026-01-26 22:12 ` Pierrick Bouvier 2026-01-26 23:44 ` Alex Bennée 2026-01-26 23:50 ` Alex Bennée 0 siblings, 2 replies; 15+ messages in thread From: Pierrick Bouvier @ 2026-01-26 22:12 UTC (permalink / raw) To: Stefan Hajnoczi, Richard Henderson; +Cc: Alex Bennée, qemu-devel On 1/26/26 2:05 PM, Stefan Hajnoczi wrote: > On Mon, Jan 26, 2026 at 4:55 PM Richard Henderson > <richard.henderson@linaro.org> wrote: >> >> Hiya, >> >> I noticed this today, wondering why the daily scheduled builds are failing: >> >> https://gitlab.com/qemu-project/qemu/-/jobs/12868286187 >> >> time="2026-01-26T17:34:06Z" level=fatal msg="Error parsing image name >> \"docker://registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross\": reading manifest >> latest in registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross: manifest unknown" >> make: *** [tests/docker/Makefile.include:54: docker-verify-emsdk-wasm-cross] Error 2 >> >> I'm not really sure what the error message means. Do we need to push a built version of >> emsdk-wasm-cross to gitlab, so that a manifest is present? Which doesn't make much sense, >> since the job is all about a weekly rebuild of the containers. > > I don't see that container image in the registry: > https://gitlab.com/qemu-project/qemu/container_registry?orderBy=UPDATED&sort=desc&search[]=wasm > > Only the emsdk-wasm32-cross and emsdk-wasm64-cross images are there. > > Stefan > I don't see where the job that is supposed to build containers weekly is building them, it is just calling skopeo inspect (???). It should depend on building and pushing associated image. https://gitlab.com/qemu-project/qemu/-/commit/8bec7b9874235e60f14172618121c60fdbd39302 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-26 22:12 ` Pierrick Bouvier @ 2026-01-26 23:44 ` Alex Bennée 2026-01-27 2:15 ` Richard Henderson 2026-01-26 23:50 ` Alex Bennée 1 sibling, 1 reply; 15+ messages in thread From: Alex Bennée @ 2026-01-26 23:44 UTC (permalink / raw) To: Pierrick Bouvier; +Cc: Stefan Hajnoczi, Richard Henderson, qemu-devel Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > On 1/26/26 2:05 PM, Stefan Hajnoczi wrote: >> On Mon, Jan 26, 2026 at 4:55 PM Richard Henderson >> <richard.henderson@linaro.org> wrote: >>> >>> Hiya, >>> >>> I noticed this today, wondering why the daily scheduled builds are failing: >>> >>> https://gitlab.com/qemu-project/qemu/-/jobs/12868286187 >>> >>> time="2026-01-26T17:34:06Z" level=fatal msg="Error parsing image name >>> \"docker://registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross\": reading manifest >>> latest in registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross: manifest unknown" >>> make: *** [tests/docker/Makefile.include:54: docker-verify-emsdk-wasm-cross] Error 2 >>> >>> I'm not really sure what the error message means. Do we need to push a built version of >>> emsdk-wasm-cross to gitlab, so that a manifest is present? Which doesn't make much sense, >>> since the job is all about a weekly rebuild of the containers. >> >> I don't see that container image in the registry: >> https://gitlab.com/qemu-project/qemu/container_registry?orderBy=UPDATED&sort=desc&search[]=wasm >> Only the emsdk-wasm32-cross and emsdk-wasm64-cross images are there. >> Stefan >> > > I don't see where the job that is supposed to build containers weekly > is building them, it is just calling skopeo inspect (???). > > It should depend on building and pushing associated image. > it depends on: - wasm64-emsdk-cross-container is that build failing? > https://gitlab.com/qemu-project/qemu/-/commit/8bec7b9874235e60f14172618121c60fdbd39302 -- Alex Bennée Virtualisation Tech Lead @ Linaro ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-26 23:44 ` Alex Bennée @ 2026-01-27 2:15 ` Richard Henderson 0 siblings, 0 replies; 15+ messages in thread From: Richard Henderson @ 2026-01-27 2:15 UTC (permalink / raw) To: Alex Bennée, Pierrick Bouvier; +Cc: Stefan Hajnoczi, qemu-devel On 1/27/26 10:44, Alex Bennée wrote: > it depends on: > > - wasm64-emsdk-cross-container > > is that build failing? https://gitlab.com/qemu-project/qemu/-/jobs/12870104569 Passes. Is the container job pushing to the wrong tag perhaps? r~ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-26 22:12 ` Pierrick Bouvier 2026-01-26 23:44 ` Alex Bennée @ 2026-01-26 23:50 ` Alex Bennée 2026-01-27 2:15 ` Richard Henderson 1 sibling, 1 reply; 15+ messages in thread From: Alex Bennée @ 2026-01-26 23:50 UTC (permalink / raw) To: Pierrick Bouvier; +Cc: Stefan Hajnoczi, Richard Henderson, qemu-devel Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > On 1/26/26 2:05 PM, Stefan Hajnoczi wrote: >> On Mon, Jan 26, 2026 at 4:55 PM Richard Henderson >> <richard.henderson@linaro.org> wrote: >>> >>> Hiya, >>> >>> I noticed this today, wondering why the daily scheduled builds are failing: >>> >>> https://gitlab.com/qemu-project/qemu/-/jobs/12868286187 >>> >>> time="2026-01-26T17:34:06Z" level=fatal msg="Error parsing image name >>> \"docker://registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross\": reading manifest >>> latest in registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross: manifest unknown" >>> make: *** [tests/docker/Makefile.include:54: docker-verify-emsdk-wasm-cross] Error 2 >>> >>> I'm not really sure what the error message means. Do we need to push a built version of >>> emsdk-wasm-cross to gitlab, so that a manifest is present? Which doesn't make much sense, >>> since the job is all about a weekly rebuild of the containers. >> >> I don't see that container image in the registry: >> https://gitlab.com/qemu-project/qemu/container_registry?orderBy=UPDATED&sort=desc&search[]=wasm >> Only the emsdk-wasm32-cross and emsdk-wasm64-cross images are there. >> Stefan >> > > I don't see where the job that is supposed to build containers weekly > is building them, it is just calling skopeo inspect (???). > > It should depend on building and pushing associated image. I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for wasm64) because we base the tests of the existence of dockerfiles and it now generates multiple targets. Do we actually use the wasm32 stuff anymore? Maybe we can just rename it? > > https://gitlab.com/qemu-project/qemu/-/commit/8bec7b9874235e60f14172618121c60fdbd39302 -- Alex Bennée Virtualisation Tech Lead @ Linaro ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-26 23:50 ` Alex Bennée @ 2026-01-27 2:15 ` Richard Henderson 2026-01-27 9:28 ` Alex Bennée 0 siblings, 1 reply; 15+ messages in thread From: Richard Henderson @ 2026-01-27 2:15 UTC (permalink / raw) To: Alex Bennée, Pierrick Bouvier; +Cc: Stefan Hajnoczi, qemu-devel On 1/27/26 10:50, Alex Bennée wrote: > I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for > wasm64) because we base the tests of the existence of dockerfiles and it > now generates multiple targets. > > Do we actually use the wasm32 stuff anymore? Maybe we can just rename it? All of the wasm32 stuff is supposed to be gone. r~ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-27 2:15 ` Richard Henderson @ 2026-01-27 9:28 ` Alex Bennée 2026-01-27 17:10 ` Pierrick Bouvier 0 siblings, 1 reply; 15+ messages in thread From: Alex Bennée @ 2026-01-27 9:28 UTC (permalink / raw) To: Richard Henderson; +Cc: Pierrick Bouvier, Stefan Hajnoczi, qemu-devel Richard Henderson <richard.henderson@linaro.org> writes: > On 1/27/26 10:50, Alex Bennée wrote: >> I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for >> wasm64) because we base the tests of the existence of dockerfiles and it >> now generates multiple targets. >> Do we actually use the wasm32 stuff anymore? Maybe we can just >> rename it? > > All of the wasm32 stuff is supposed to be gone. I think 20260127092745.2978371-1-alex.bennee@linaro.org should fix it, but I need to re-read how to trigger the weekly build on my test branch to test it. > > r~ -- Alex Bennée Virtualisation Tech Lead @ Linaro ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-27 9:28 ` Alex Bennée @ 2026-01-27 17:10 ` Pierrick Bouvier 2026-01-27 17:31 ` Pierrick Bouvier 2026-01-27 18:15 ` Alex Bennée 0 siblings, 2 replies; 15+ messages in thread From: Pierrick Bouvier @ 2026-01-27 17:10 UTC (permalink / raw) To: Alex Bennée, Richard Henderson; +Cc: Stefan Hajnoczi, qemu-devel On 1/27/26 1:28 AM, Alex Bennée wrote: > Richard Henderson <richard.henderson@linaro.org> writes: > >> On 1/27/26 10:50, Alex Bennée wrote: >>> I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for >>> wasm64) because we base the tests of the existence of dockerfiles and it >>> now generates multiple targets. >>> Do we actually use the wasm32 stuff anymore? Maybe we can just >>> rename it? >> >> All of the wasm32 stuff is supposed to be gone. > > I think 20260127092745.2978371-1-alex.bennee@linaro.org should fix it, > but I need to re-read how to trigger the weekly build on my test branch > to test it. > >> >> r~ > What if docker-verify was depending on building the container locally instead? It would allow to have a self-contained command, that works the same in local, or in CI, without any yaml dependencies. With current approach, it's tricky to reproduce locally as it depends on global gitlab registry, while we are just trying to see if images is buildable from scratch or not. The fact it's hard to guess how to test such a change exposes that there is a problem to reproduce this, even for the original author. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-27 17:10 ` Pierrick Bouvier @ 2026-01-27 17:31 ` Pierrick Bouvier 2026-01-27 18:15 ` Alex Bennée 1 sibling, 0 replies; 15+ messages in thread From: Pierrick Bouvier @ 2026-01-27 17:31 UTC (permalink / raw) To: Alex Bennée, Richard Henderson; +Cc: Stefan Hajnoczi, qemu-devel On 1/27/26 9:10 AM, Pierrick Bouvier wrote: > On 1/27/26 1:28 AM, Alex Bennée wrote: >> Richard Henderson <richard.henderson@linaro.org> writes: >> >>> On 1/27/26 10:50, Alex Bennée wrote: >>>> I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for >>>> wasm64) because we base the tests of the existence of dockerfiles and it >>>> now generates multiple targets. >>>> Do we actually use the wasm32 stuff anymore? Maybe we can just >>>> rename it? >>> >>> All of the wasm32 stuff is supposed to be gone. >> >> I think 20260127092745.2978371-1-alex.bennee@linaro.org should fix it, >> but I need to re-read how to trigger the weekly build on my test branch >> to test it. >> >>> >>> r~ >> > > What if docker-verify was depending on building the container locally > instead? It would allow to have a self-contained command, that works the > same in local, or in CI, without any yaml dependencies. > > With current approach, it's tricky to reproduce locally as it depends on > global gitlab registry, while we are just trying to see if images is > buildable from scratch or not. > > The fact it's hard to guess how to test such a change exposes that there > is a problem to reproduce this, even for the original author. As well, docker or podman already have inspect command builtin, so I'm not sure what is the added value of skopeo here. diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 38467cca610..c280467aa8d 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -50,11 +50,11 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker "BUILD", $*) # General rule for inspecting registry images. -docker-verify-%: $(DOCKER_FILES_DIR)/%.docker +docker-verify-%: docker-image-% $(DOCKER_FILES_DIR)/%.docker $(call quiet-command, \ - skopeo inspect \ + $(RUNC) inspect \ --format '{{.Created}}' \ - docker://$(DOCKER_REGISTRY)/qemu/$* \ + qemu/$* \ $(if $V,,> /dev/null),\ "VERIFY", $*) ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-27 17:10 ` Pierrick Bouvier 2026-01-27 17:31 ` Pierrick Bouvier @ 2026-01-27 18:15 ` Alex Bennée 2026-01-27 18:28 ` Pierrick Bouvier 1 sibling, 1 reply; 15+ messages in thread From: Alex Bennée @ 2026-01-27 18:15 UTC (permalink / raw) To: Pierrick Bouvier; +Cc: Richard Henderson, Stefan Hajnoczi, qemu-devel Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > On 1/27/26 1:28 AM, Alex Bennée wrote: >> Richard Henderson <richard.henderson@linaro.org> writes: >> >>> On 1/27/26 10:50, Alex Bennée wrote: >>>> I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for >>>> wasm64) because we base the tests of the existence of dockerfiles and it >>>> now generates multiple targets. >>>> Do we actually use the wasm32 stuff anymore? Maybe we can just >>>> rename it? >>> >>> All of the wasm32 stuff is supposed to be gone. >> I think 20260127092745.2978371-1-alex.bennee@linaro.org should fix >> it, >> but I need to re-read how to trigger the weekly build on my test branch >> to test it. >> >>> >>> r~ >> > > What if docker-verify was depending on building the container locally > instead? It would allow to have a self-contained command, that works > the same in local, or in CI, without any yaml dependencies. > > With current approach, it's tricky to reproduce locally as it depends > on global gitlab registry, while we are just trying to see if images > is buildable from scratch or not. No - the point of verify was to check we where building in the registry. A lot of the Makefile.include stuff is legacy now (although its a useful wrapper for building tests locally) because gitlab invokes the containers directly. We used to do all sorts of dependency handling as well but the lcitool approach is a lot cleaner even if we don't get layered containers. > > The fact it's hard to guess how to test such a change exposes that > there is a problem to reproduce this, even for the original author. -- Alex Bennée Virtualisation Tech Lead @ Linaro ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-27 18:15 ` Alex Bennée @ 2026-01-27 18:28 ` Pierrick Bouvier 2026-01-27 23:51 ` Alex Bennée 0 siblings, 1 reply; 15+ messages in thread From: Pierrick Bouvier @ 2026-01-27 18:28 UTC (permalink / raw) To: Alex Bennée; +Cc: Richard Henderson, Stefan Hajnoczi, qemu-devel On 1/27/26 10:15 AM, Alex Bennée wrote: > Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > >> On 1/27/26 1:28 AM, Alex Bennée wrote: >>> Richard Henderson <richard.henderson@linaro.org> writes: >>> >>>> On 1/27/26 10:50, Alex Bennée wrote: >>>>> I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for >>>>> wasm64) because we base the tests of the existence of dockerfiles and it >>>>> now generates multiple targets. >>>>> Do we actually use the wasm32 stuff anymore? Maybe we can just >>>>> rename it? >>>> >>>> All of the wasm32 stuff is supposed to be gone. >>> I think 20260127092745.2978371-1-alex.bennee@linaro.org should fix >>> it, >>> but I need to re-read how to trigger the weekly build on my test branch >>> to test it. >>> >>>> >>>> r~ >>> >> >> What if docker-verify was depending on building the container locally >> instead? It would allow to have a self-contained command, that works >> the same in local, or in CI, without any yaml dependencies. >> >> With current approach, it's tricky to reproduce locally as it depends >> on global gitlab registry, while we are just trying to see if images >> is buildable from scratch or not. > > No - the point of verify was to check we where building in the > registry. > Hum, I'm not sure what "building in the registry" means. Containers are always built locally then (optionally) pushed to a given registry. If you want to test something useful, it has to be a build from scratch (docker build --no-cache ...). > A lot of the Makefile.include stuff is legacy now (although its a useful > wrapper for building tests locally) because gitlab invokes the > containers directly. We used to do all sorts of dependency handling as > well but the lcitool approach is a lot cleaner even if we don't get > layered containers. > The commit message for 8bec7b9874 is: ``` gitlab: add a weekly container building job This will hopefully catch containers that break because of upstream changes as well as keep the container cache fresh. ``` IMHO, a simple weekly job doing what we want is: docker build --no-cache - < $dockerfile I don't see what is the relation with gitlab, lcitool or Makefile. Maybe I miss some extra insights or goals that were not documented in original commit, but it seems like the current implementation is not aware of what it's supposed to do. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-27 18:28 ` Pierrick Bouvier @ 2026-01-27 23:51 ` Alex Bennée 2026-01-28 17:08 ` Pierrick Bouvier 0 siblings, 1 reply; 15+ messages in thread From: Alex Bennée @ 2026-01-27 23:51 UTC (permalink / raw) To: Pierrick Bouvier; +Cc: Richard Henderson, Stefan Hajnoczi, qemu-devel Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > On 1/27/26 10:15 AM, Alex Bennée wrote: >> Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: >> >>> On 1/27/26 1:28 AM, Alex Bennée wrote: >>>> Richard Henderson <richard.henderson@linaro.org> writes: >>>> >>>>> On 1/27/26 10:50, Alex Bennée wrote: >>>>>> I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for >>>>>> wasm64) because we base the tests of the existence of dockerfiles and it >>>>>> now generates multiple targets. >>>>>> Do we actually use the wasm32 stuff anymore? Maybe we can just >>>>>> rename it? >>>>> >>>>> All of the wasm32 stuff is supposed to be gone. >>>> I think 20260127092745.2978371-1-alex.bennee@linaro.org should fix >>>> it, >>>> but I need to re-read how to trigger the weekly build on my test branch >>>> to test it. >>>> >>>>> >>>>> r~ >>>> >>> >>> What if docker-verify was depending on building the container locally >>> instead? It would allow to have a self-contained command, that works >>> the same in local, or in CI, without any yaml dependencies. >>> >>> With current approach, it's tricky to reproduce locally as it depends >>> on global gitlab registry, while we are just trying to see if images >>> is buildable from scratch or not. >> No - the point of verify was to check we where building in the >> registry. >> > > Hum, I'm not sure what "building in the registry" means. Containers > are always built locally then (optionally) pushed to a given registry. Yes - and this checks that the registry is up to date. We don't want to re-build every time if it can cache. This benefits the CI and the downstream users that pull the images. > If you want to test something useful, it has to be a build from > scratch (docker build --no-cache ...). > >> A lot of the Makefile.include stuff is legacy now (although its a useful >> wrapper for building tests locally) because gitlab invokes the >> containers directly. We used to do all sorts of dependency handling as >> well but the lcitool approach is a lot cleaner even if we don't get >> layered containers. >> > > The commit message for 8bec7b9874 is: > ``` > gitlab: add a weekly container building job > This will hopefully catch containers that break because of upstream > changes as well as keep the container cache fresh. > ``` > > IMHO, a simple weekly job doing what we want is: > docker build --no-cache - < $dockerfile The containers are built by the dependencies: needs: # core - amd64-centos9-container - amd64-fedora-container # cross - amd64-debian-cross-container - amd64-debian-user-cross-container - amd64-debian-legacy-cross-container - arm64-debian-cross-container - hexagon-cross-container - loongarch-debian-cross-container - mips64el-debian-cross-container - ppc64el-debian-cross-container - riscv64-debian-cross-container - s390x-debian-cross-container - tricore-debian-cross-container - xtensa-debian-cross-container - win64-fedora-cross-container - wasm64-emsdk-cross-container # containers - amd64-alpine-container - amd64-debian-container - amd64-ubuntu2204-container - amd64-opensuse-leap-container - python-container - amd64-fedora-rust-nightly-container > I don't see what is the relation with gitlab, lcitool or Makefile. > > Maybe I miss some extra insights or goals that were not documented in > original commit, but it seems like the current implementation is not > aware of what it's supposed to do. We occasionally see failures due to upstream distro changes. By having a separate job we can see if it happens independent of testing staging trees. -- Alex Bennée Virtualisation Tech Lead @ Linaro ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-27 23:51 ` Alex Bennée @ 2026-01-28 17:08 ` Pierrick Bouvier 0 siblings, 0 replies; 15+ messages in thread From: Pierrick Bouvier @ 2026-01-28 17:08 UTC (permalink / raw) To: Alex Bennée; +Cc: Richard Henderson, Stefan Hajnoczi, qemu-devel On 1/27/26 3:51 PM, Alex Bennée wrote: > Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > >> On 1/27/26 10:15 AM, Alex Bennée wrote: >>> Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: >>> >>>> On 1/27/26 1:28 AM, Alex Bennée wrote: >>>>> Richard Henderson <richard.henderson@linaro.org> writes: >>>>> >>>>>> On 1/27/26 10:50, Alex Bennée wrote: >>>>>>> I think it was broken by 4203ea0247f (gitlab-ci: Add build tests for >>>>>>> wasm64) because we base the tests of the existence of dockerfiles and it >>>>>>> now generates multiple targets. >>>>>>> Do we actually use the wasm32 stuff anymore? Maybe we can just >>>>>>> rename it? >>>>>> >>>>>> All of the wasm32 stuff is supposed to be gone. >>>>> I think 20260127092745.2978371-1-alex.bennee@linaro.org should fix >>>>> it, >>>>> but I need to re-read how to trigger the weekly build on my test branch >>>>> to test it. >>>>> >>>>>> >>>>>> r~ >>>>> >>>> >>>> What if docker-verify was depending on building the container locally >>>> instead? It would allow to have a self-contained command, that works >>>> the same in local, or in CI, without any yaml dependencies. >>>> >>>> With current approach, it's tricky to reproduce locally as it depends >>>> on global gitlab registry, while we are just trying to see if images >>>> is buildable from scratch or not. >>> No - the point of verify was to check we where building in the >>> registry. >>> >> >> Hum, I'm not sure what "building in the registry" means. Containers >> are always built locally then (optionally) pushed to a given registry. > > Yes - and this checks that the registry is up to date. We don't want to > re-build every time if it can cache. This benefits the CI and the > downstream users that pull the images. > Of course, and reusing layers is a good way to optimize our CI, local dev workflow, and reduce pressure on distro servers. The point I was talking about is related to this weekly-job only, which we specifically want to be without all those layers, to test if image is still buildable from scratch. >> If you want to test something useful, it has to be a build from >> scratch (docker build --no-cache ...). >> >>> A lot of the Makefile.include stuff is legacy now (although its a useful >>> wrapper for building tests locally) because gitlab invokes the >>> containers directly. We used to do all sorts of dependency handling as >>> well but the lcitool approach is a lot cleaner even if we don't get >>> layered containers. >>> >> >> The commit message for 8bec7b9874 is: >> ``` >> gitlab: add a weekly container building job >> This will hopefully catch containers that break because of upstream >> changes as well as keep the container cache fresh. >> ``` >> >> IMHO, a simple weekly job doing what we want is: >> docker build --no-cache - < $dockerfile > > The containers are built by the dependencies: > > needs: > # core > - amd64-centos9-container > - amd64-fedora-container > # cross > - amd64-debian-cross-container > - amd64-debian-user-cross-container > - amd64-debian-legacy-cross-container > - arm64-debian-cross-container > - hexagon-cross-container > - loongarch-debian-cross-container > - mips64el-debian-cross-container > - ppc64el-debian-cross-container > - riscv64-debian-cross-container > - s390x-debian-cross-container > - tricore-debian-cross-container > - xtensa-debian-cross-container > - win64-fedora-cross-container > - wasm64-emsdk-cross-container > # containers > - amd64-alpine-container > - amd64-debian-container > - amd64-ubuntu2204-container > - amd64-opensuse-leap-container > - python-container > - amd64-fedora-rust-nightly-container > >> I don't see what is the relation with gitlab, lcitool or Makefile. >> >> Maybe I miss some extra insights or goals that were not documented in >> original commit, but it seems like the current implementation is not >> aware of what it's supposed to do. > > We occasionally see failures due to upstream distro changes. By having a > separate job we can see if it happens independent of testing staging > trees. > Yes, and this happens a new divergent layer is added, mostly when we modify dockerfiles themselves with lcitool. From our container template: https://gitlab.com/qemu-project/qemu/-/blob/master/.gitlab-ci.d/container-template.yml ``` .container_job_template: ... export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:$QEMU_CI_CONTAINER_TAG" export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/qemu/$NAME:latest" ... docker build --tag "$TAG" --cache-from "$TAG" --cache-from "$COMMON_TAG" --build-arg BUILDKIT_INLINE_CACHE=1 $BUILD_ARGS -f "tests/docker/dockerfiles/$DOCKERFILE_NAME.docker" "." ``` --cache-from makes that we reuse the existing layers, so the weekly job will not expose anything we don't already saw through regular PR pipelines. You need to build with --no-cache, to make sure docker builds from scratch. This is not what current weekly job does. As we talked about in private our conversation with Alex, the two solutions are: 1. make weekly-container use `docker build --no-cache directly - < /path/to/dockerfile`, without pushing any result (and not trashing everyone's cached layers). 2. extend complex yaml machinery to conditionally use cache or not, and push or not resulting image. IMHO, 1 is much simpler, and can even be turned into a daily job, so we can see daily what's the status of upstream distros, and know as soon as possible when they are fixed. As well, skopeo can be ditched since it's not checking anything useful, except if image is available in gitlab registry, which we know is by design. I suspect Alex might prefer 2. and I won't push against it, but let him debug the yaml pile :) Pierrick ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: gitlab docker registries 2026-01-26 21:53 gitlab docker registries Richard Henderson 2026-01-26 22:05 ` Stefan Hajnoczi @ 2026-01-26 22:07 ` Pierrick Bouvier 1 sibling, 0 replies; 15+ messages in thread From: Pierrick Bouvier @ 2026-01-26 22:07 UTC (permalink / raw) To: Richard Henderson, Alex Bennée; +Cc: qemu-devel On 1/26/26 1:53 PM, Richard Henderson wrote: > Hiya, > > I noticed this today, wondering why the daily scheduled builds are failing: > > https://gitlab.com/qemu-project/qemu/-/jobs/12868286187 > > time="2026-01-26T17:34:06Z" level=fatal msg="Error parsing image name > \"docker://registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross\": reading manifest > latest in registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross: manifest unknown" > make: *** [tests/docker/Makefile.include:54: docker-verify-emsdk-wasm-cross] Error 2 > > I'm not really sure what the error message means. Do we need to push a built version of > emsdk-wasm-cross to gitlab, so that a manifest is present? Which doesn't make much sense, > since the job is all about a weekly rebuild of the containers. > > > r~ > Not sure how the mechanic for creating those containers was added, but it just seems like this containers does not exist in the registry, and `skopeo inspect ... docker://registry.gitlab.com/qemu-project/qemu/qemu/emsdk-wasm-cross` fails accordingly. So maybe we should find why this container image was not built and pushed in the first place. ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-01-28 17:11 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-01-26 21:53 gitlab docker registries Richard Henderson 2026-01-26 22:05 ` Stefan Hajnoczi 2026-01-26 22:12 ` Pierrick Bouvier 2026-01-26 23:44 ` Alex Bennée 2026-01-27 2:15 ` Richard Henderson 2026-01-26 23:50 ` Alex Bennée 2026-01-27 2:15 ` Richard Henderson 2026-01-27 9:28 ` Alex Bennée 2026-01-27 17:10 ` Pierrick Bouvier 2026-01-27 17:31 ` Pierrick Bouvier 2026-01-27 18:15 ` Alex Bennée 2026-01-27 18:28 ` Pierrick Bouvier 2026-01-27 23:51 ` Alex Bennée 2026-01-28 17:08 ` Pierrick Bouvier 2026-01-26 22:07 ` Pierrick Bouvier
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.