-
Notifications
You must be signed in to change notification settings - Fork 18.9k
Upgrade the frozen images to multi-arch ones #35929
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
a7193dd to
a6c45b3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍 but maybe we can use Busybox v1.27 in all our testing.
dnephin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of trying to support both versions can we just upgrade the frozen image to the latest version?
integration-cli/cli/cli.go
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this helper is necessary. Just call Docker(Args(...)) directly.
DockerCmd() only exists for backwards compatibility.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can upgrade the frozen image to the latest version and only support the latest for this test case 🉑 things will be easy as it should to be...
|
Silly question; is busybox not using SemVer? And if it does, this would be a breaking change; should this be reported upstream in the busybox issue tracker? |
|
@thaJeztah busybox appears to use SemVar. They have their own version of The arch-specific frozen busybox images use v1.26.2 with the old functionality, so all the dockerfiles should all be updated to use the manifest list which points to v1.27.2 too. |
|
Thanks for the review! So according to the comments, I am happy to make below changes:
Will push the changes soon. Any comments/suggestions are appreciated, as always 👍 |
a6c45b3 to
08cd715
Compare
|
Hello every maintainers, PTAL? 😵 |
|
Thanks! The change looks good, but there are a few more test failures to fix. For
For I'm not sure about the rest of the failures, so might be flakes. When you push those fixes we'll see if the same tests fail. Adding the links to the first CI runs here: |
Dockerfile.armhf
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the one case where download-frozen-image-v2.sh won't be smart enough as-is to use the correct image (just like Docker ATM isn't smart enough as-is). See #34875 for more details (and download-frozen-image-v2.sh now uses a very similar algorithm to Docker's own for choosing).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right! Things will be a little bit complicated when we talking about arm arch, since it acrosses wider ecosystem from embedded, mobile/IoT to the enterprise. For the topic itself, clearly we need a variant to location the exact arm image such as armhf and armel. Current problem is with GOARCH we only tell arm64 or arm, we've realized this so that's why we have a PR containerd/containerd#1575 merged into containerd to handle this, that PR uses /proc/cpuinfo to get v5 v6 v7 v8 info of arm. So IMO, probably we need to add the variant support in download-frozen-image-v2.sh in terms of arm 32bit case. currently I prefer to let it to be still existing one , and enhance that after all the multi-arch futures for Arm arch are ready. For me, I don't care about the 32-bit at all, my github account is arm64b meaning 'it's arm, but only 64b(it)` 🎃. But if you have any suggestions here, I am happy to take account of it.
|
@dnephin For the 2 problems of For the |
|
Oops! Except the
But all those are above my head to move further to fix in short time, so I need you guys' great help to make the future better 🎉 |
I think there's an issue currently with network access to the |
|
@thaJeztah not much of an update, but the Z community cloud where these vms are being hosted had an outage on friday and is currently under maintenance. We have someone in that datacenter working with docker to get these machines back up |
82c56d0 to
f9c1a25
Compare
ls command compatible issuef4b28a0 to
0a5ac8b
Compare
0a5ac8b to
d383ca8
Compare
Upgrade the frozen images to the multi-arch ones. Since issue moby#35963 is not fixed yet on linux/amd64, so we keep the busybox image on amd64 untouched. Signed-off-by: Dennis Chen <[email protected]>
We don't need the test image namespace anymore since we've already upgrade those images to the latest multi-arch ones. Signed-off-by: Dennis Chen <[email protected]>
d383ca8 to
5f254ce
Compare
BusyBox v1.26.2 (2017-03-09 00:04:38 UTC) supports `-le` option
to get the full date and time information, while BusyBox v1.27.2
(2017-11-01 23:22:25 UTC, which is used by the official multi-arch
image, uses `--full-time` instead of `-e` to get the same data. As
a result, we will get below error for the `DockerSuite.TestBuildLastModified`
test case in case of multi-arch image used:
> docker_cli_build_test.go:446:
> out2 = cli.DockerCmd(c, "run", name, "ls", "-le", "/file").Combined()
> o/src/github.com/docker/docker/vendor/github.com/gotestyourself/gotestyourself/icmd/command.go:61:
> t.Fatalf("at %s:%d - %s\n", filepath.Base(file), line, err.Error())
> ... Error: at cli.go:33 -
> Command: /usr/local/bin/docker run testbuildlastmodified ls -le /file
> ExitCode: 1
> Error: exit status 1
> Stdout:
> Stderr: ls: invalid option -- e
> BusyBox v1.27.2 (2017-11-01 23:22:25 UTC) multi-call binary.
This PR tries to fix the above compatible issue for busybox image.
Signed-off-by: Dennis Chen <[email protected]>
Use `cat -v` command instead of `catv` for the latest version of busybox(V1.28.0) with multi-arch Signed-off-by: Dennis Chen <[email protected]>
5f254ce to
ec6659a
Compare
|
Hi @dnephin , PTAL? Thanks @thaJeztah for the 'rebuild' over and over 🤝 |
dnephin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
thaJeztah
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Since for now download-frozen-image-v2.sh won't be smart enough to use the adequate image in arm platform, hence we add variant support to fix it. Relevant request has been raised in github (moby#35929 and moby#34875). Signed-off-by: Penny Zheng <[email protected]>
Upgrade the frozen images to multi-arch, and fix all the bugs triggered by the upgrade accordingly.
fixes #35927
Signed-off-by: Dennis Chen [email protected]
- What I did
- How I did it
Upgrade all the legacy frozen docker images to the latest multi-arch ones, then handle the compatible issue for the newer version.
- How to verify it
We can verify it directly with
make test-integration.- Description for the changelog
- A picture of a cute animal (not mandatory but encouraged)