-
Notifications
You must be signed in to change notification settings - Fork 18.6k
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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhanced Dockerfile for cross compilation (test Jenkinsfile changes) #43613
Conversation
Looks like I need to fix the rogue certs for Jenkins like I've done on this branch for GHA: crazy-max@11a16d5 |
Of found the root cause of this issue. this is linked to the new Dockerfile that now builds the docker cli for the integration tests: Lines 453 to 460 in 1bf5dbb
previously the Dockerfile was just downloading the docker cli from download.docker.com and this one was using an old Go version that didn't have this requirement for an alt name yet. I think it's fair to update the rogue certs anyway as in the future we are going to have the exact same issue anyway. |
@thaJeztah Made some changes in #43529 so now docker cli is built against the right go version if you want to rebase to check that tests are ok now. let me know if you still want a way in the dockerfile to choose between building vs downloading. |
Argh no arm64 arch for this golang image, I guess we need to go back to the previous logic with dow,loading from download.docker.com. |
ef6a3cf
to
05e694b
Compare
Some failures - not sure if all related, but this one I hadn't seen before (or at least, not that I recall 馃) - it's networking, so could still be just flaky 馃槀
|
Should be fixed now if you can rebase, thx! |
05e694b
to
66df1c4
Compare
@thaJeztah Looks good on Jenkins, minus unrelated error while cleaning the workspace on windows nodes: And known flaky test on GHA workflow for Windows #38521:
|
Argh another racy one linked to #11966: https://github.com/moby/moby/runs/6591181007?check_suite_focus=true#step:15:4943
And looks like Windows node on Jenkins has timed out: https://ci-next.docker.com/public/blue/organizations/jenkins/moby/detail/PR-43613/4/pipeline#step-284-log-1841 |
66df1c4
to
f1010b2
Compare
@thaJeztah
Can you restart the Jenkins pipeline? |
Restarted! |
Looks like this one is still flaky #11966:
https://github.com/moby/moby/runs/6669613995?check_suite_focus=true#step:15:4943
|
@thaJeztah Ok #43529 rebased with latest changes from master. |
f1010b2
to
de02776
Compare
done 馃憤 |
Same one bites the dust: https://github.com/moby/moby/runs/6689351547?check_suite_focus=true#step:15:4948
|
de02776
to
2f41e9e
Compare
Needs rebase |
2f41e9e
to
4813cdb
Compare
This one is interesting: https://ci-next.docker.com/public/blue/organizations/jenkins/moby/detail/PR-43613/11/pipeline/252#step-253-log-76
@thaJeztah Maybe linked to what you said at maintainer meeting about the I think I will bring some bits of crazy-max@7751ec5 in the PR just to check if this is a regression. |
I kicked Jenkins again |
frozen-images stage doesn't use the download-frozen-image-v2.sh anymore so we can effectively use TARGETPLATFORM from global scope. The test util has been updated accordingly. In a follow-up we can remove download-frozen-image-v2.sh script but needs to look first at Dockerfile.e2e which seems not used anymore in our pipeline. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
To add support for riscv64 builds we need crossbuild packages for riscv64 but current golang image with debian bullseye does not support it. Ubuntu 22.04 supports riscv64 but unfortunately drops support for armel arch. Therefore we need a multi base image that will be picked up based on the target platform we want to build. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
vpnkit stage only supports linux/amd64 and linux/arm64 platforms when building dev image and will crash if we try building against another platform. with this change we can still build the dev image against any platform using dummy scratch base. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
pin criu for better reproducibility and build from source so we can use it across any platform. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
dummy stage allows to bypass build for deps that don't support some platforms Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
containerd build in Dockerfile is limited to host platform and could not be cross-built for other platforms. this change allows to build against any platforms if we want to smoke test in a follow-up but also enhance e2e tests for linux and windows in our pipeline. also introduced DOCKER_LINKMODE to be able to build dynamic or static binaries. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
runc build in Dockerfile is limited to host platform and could not be cross-built for other platforms. this change allows to build against any platforms if we want to smoke test in a follow-up but also enhance e2e tests for linux and windows in our pipeline. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
tini build in Dockerfile is limited to host platform and could not be cross-built for other platforms. this change allows to build against any platforms if we want to smoke test in a follow-up but also enhance e2e tests for linux and windows in our pipeline. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
rootlesskit build in Dockerfile is limited to host platform and could not be cross-built for other platforms. this change allows to build against any platforms if we want to smoke test in a follow-up but also enhance e2e tests for linux and windows in our pipeline. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
containerutility build in Dockerfile is limited to windows platform atm but enabling cross build for it enhance and reduce footprint in our piepline for linux and windows e2e tests. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Better support for cross compilation so we can rely on --platform flag of buildx for a seamless integration. This removes not necessary extra cross logic in the Dockerfile as well as hack scripts. Tried my best to reduce the footprint of changes but modifying one bit in the Dockerfile involves other changes in ./hack scripts. Non-sandboxed build invocation is still supported. It also handles cross compilation for external tools dynamically based on platform arg available in global scope (containerd, runc, tini, ...). Dev stages have been updated accordingly to changes for cross comp as well as linked tools (swagger, tomll, gotestsum, ...) The current bake definition has been updated to take the changes into account as well as the ci gha workflow. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
needs to update supported platforms for pie buildmode and adds smoke test Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
4813cdb
to
01ca536
Compare
Just a rebase of #43529, but Jenkinsfile changes are not taken into account for pull requests if the contributor doesn't have write access), so opening this to put everything to the test 馃槄