rust-lang / docker-rust

The official Docker images for Rust
431 stars 89 forks source link

amd64 missing for some 1.70 images #147

Closed robklg closed 1 year ago

robklg commented 1 year ago

amd64 architecture appears to missing for some of the images in dockerhub, like 1.70.0-slim

t-matsudate commented 1 year ago

Also I've got this issue in GitHub Actions.

Pull down action image 'rust:1.70.0' /usr/bin/docker pull rust:1.70.0 no matching manifest for linux/amd64 in the manifest list entries 1.70.0: Pulling from library/rust Warning: Docker pull failed with exit code 1, back off 9.944 seconds before retry.

yaa110 commented 1 year ago

same issue here:

no matching manifest for linux/amd64 in the manifest list entries
sfackler commented 1 year ago

The images are built by Docker Hub infrastructure - we have no control over when that happens.

tristan-morris commented 1 year ago

I haven't looked at this before, but clicked a bunch of buttons on Docker hub... You can view the status of the official builds at https://doi-janky.infosiftr.net/ running on a Jenkins. It looks like the build jobs have completed for i386 and arm, whereas the amd64 builds started on 01 June and are still running (not for rust, that's done but it's 1.69). The amd64 pipeline is building all the things from 01 June (rabbit, debian, whatever..). 1.70 was also released on 01 June, so assume it just missed the cutoff. There's another build run scheduled, so assume 1.70 amd64 will get picked up then - doesn't appear to have errored. I think one of the dependent layers updated so Jenkins is sad and needs some more cpuz.

Trigger job: https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/_trigger/ i386 job: https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/rust/ amd64 job: https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/rust/

[Edit: Another job might be stuck, holding up the build queue. Wish I could cancel https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/tomee/]

waghanza commented 1 year ago

Not sure it is normal @tristan-morris

https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/_trigger/44699/ has started since 2 days

Maybe someone at https://github.com/docker-library/oi-janky-groovy could help (@tianon or @yosifkit maybe)

frederikhors commented 1 year ago

I opened https://github.com/rust-lang/docker-rust/issues/148 and I think it is related.

I also noticed that each 1.70 build is MUCH slower than the 1.69 builds.

Maybe the same problem that makes these builds slow?

tristan-morris commented 1 year ago

1.70 is built and available now on Docker hub.

Looks like Jenkins is much happier now. https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/tomee/ was disabled and the trigger job seems to be happily up-to-date.

t-matsudate commented 1 year ago

@tristan-morris Thank you for telling it to us! I checked that Docker's image ran on GitHub Actions. :)

frederikhors commented 1 year ago

@tristan-morris can you please explain this to noobs like me? What happened? What is going on right now?

frederikhors commented 1 year ago

@sfackler can you please explain what happened?

sfackler commented 1 year ago

The Docker-owned infrastructure that builds the images and publishes them to the Hub was backed up.

frederikhors commented 1 year ago

The Docker-owned infrastructure that builds the images and publishes them to the Hub was backed up.

Ok, but the 1.70 was published AND it was a broken image. Is this the normal behavior?

sfackler commented 1 year ago

What does "broken" mean in this context?

frederikhors commented 1 year ago

Sorry, with broken I mean issues like:

and so on...

Why this happened?

sfackler commented 1 year ago

148 someone already replied why:

This was the problem I had yesterday. My binaries were built against i386 and then running in amd64, which led me to https://github.com/rust-lang/docker-rust/issues/147. The OP got in there a few minutes before :)

149 includes literally zero information beyond "it fails", so I have no idea.

frederikhors commented 1 year ago

My binaries were built against i386

because the image was broken. It was not building amd64 binaries. This is the question: why?

frederikhors commented 1 year ago

image

sfackler commented 1 year ago

https://docs.docker.com/build/building/multi-platform/

You were using the linux:386 image, not the linux:amd64 image.

frederikhors commented 1 year ago

I'm sorry. I'm not understanding.

I'm using this and it works perfectly.

FROM rust:1.69

Using the below instead was "broken":

FROM rust:1.70

This is what I'm asking about.

How to choose between 386/amd64?

sfackler commented 1 year ago

Can you rephrase that question with respect to the information included in the link I just posted?

tianon commented 1 year ago

If you want "amd64 only" (not "amd64 with i386 fallback"), you'll want/need to pin either to the content digest of the amd64 image or use amd64/rust:xxx explicitly (neither Docker nor containerd whose --platform syntax Docker supports/inherits support a "this exact platform" specification).

As noted in this thread, the underlying issue was that another build gummed up the official images build queue, and that's since been corrected.