Closed amLiux closed 9 months ago
Hi @amLiux,
I have the same issue. For me it looks like, it has something to do with the node:current-alpine
Container.
I checked your workflow, and it is hanging at the npm install
execution.
On my side the issue occurred after I switched from Node v18 to Node v20. Can you please try to use node v18 and give me feedback if the build process is still stuck? I try to fix this for hours, because I see some huge performance increasements in my application by using Node v20 compared to v18.
Thank you in advance.
Taking up to 5h for building and not really sure if working.
Looking at your workflow https://github.com/amLiux/JardinBinario/blob/83a4b500744829132b611ae9070b76e7c3344913/.github/workflows/devBranchDockerDeploy.yml#L11
You're building on ubuntu-latest
which is a x86
host and therefore building against a non-native platform such as linux/arm/v7
in your case is expected to be quite resource intensive as it will be built using emulation (QEMU). More info: https://docs.docker.com/build/building/multi-platform/.
If you cannot use cross-compilation with this RUN
step https://github.com/amLiux/JardinBinario/blob/83a4b500744829132b611ae9070b76e7c3344913/Dockerfile#L28, then you need a native BuildKit node to remove emulation penalty by configuring nodes like https://docs.docker.com/build/ci/github-actions/configure-builder/#append-additional-nodes-to-the-builder
Or you could distribute platform builds across multiple runners if that can help reducing build time: https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
You're building on
ubuntu-latest
which is ax86
host and therefore building against a non-native platform such aslinux/arm/v7
in your case is expected to be quite resource intensive as it will be built using emulation (QEMU). More info: https://docs.docker.com/build/building/multi-platform/.
I think it is the issue in this case. It looks like there is a bug in qemu (https://gitlab.com/qemu-project/qemu/-/issues/1729)
You can also check these issues: https://github.com/nodejs/docker-node/issues/1798 https://github.com/nodejs/docker-node/issues/1973
Maybe this issue and my currently stuck build are really related to the QEMU issue? Builds with an Alpine image v3.18 worked fine like https://github.com/toolhippie/commitlint/actions/runs/7083830830/job/19276929005 and the pull request to upgrade Alpine to v3.19 results in canceled builds after running for 6 hours https://github.com/toolhippie/commitlint/actions/runs/7173386897/job/19532635612 which obviously worked fine with older Alpine image versions.
Contributing guidelines
I've found a bug, and:
Description
I had a workflow that looked something like this for my qa branch:
I tried adding a new workflow which implemented a new arch as we have a couple of RPI clusters to load QA efforts into them which use armv7l for each branch and ended up looking something like this:
But it's taking too long, not sure if I leave it for 5+ it will complete.
Expected behaviour
To complete armv7 and amd64 builds and push them.
Actual behaviour
Taking up to 5h for building and not really sure if working.
Repository URL
https://github.com/amLiux/JardinBinario
Workflow run URL
https://github.com/amLiux/JardinBinario/actions/runs/6366029508
YAML workflow
Workflow logs
logs_86.zip
BuildKit logs
No response
Additional info
No response