aries-cloudagent-python: Multi-architecture image builds failing
As a result of the fix in https://github.com/hyperledger/aries-cloudagent-python/pull/2123, for https://github.com/hyperledger/aries-cloudagent-python/issues/2121, the extras, [askar,bbs]
, are now being installed and this is causing the multi-architecture image builds to fail, specifically the ones for linux/arm64
and linux/386
.
The failures arise due to the fact that the visions of the askar
and bbs
packages defined in the requirements files do not have wheel packages published for the linux/arm64
and linux/386
architectures and they do not have source packages published that would allow for the packages to be built and installed from source. In the case of the askar
dependencies, compatible wheel packages have been published for other versions, just not the ones defined currently.
Steps to reproduce locally:
-
Get the latest aca-py code.
-
Run either of the following commands
docker buildx build --no-cache --progress plain -t main --platform linux/386 -f docker/Dockerfile -t aca-py-test-build . docker buildx build --no-cache --progress plain -t main --platform linux/arm64 -f docker/Dockerfile -t aca-py-test-build .
-
Review the build failure messages.
-
In contrast building the
linux/amd64
image using the following command succeeds without error:docker buildx build --no-cache --progress plain -t main --platform linux/amd64 -f docker/Dockerfile -t aca-py-test-build .
Example Results:
The error messages change depending on the order pip tries to resolve the bbs
and askar
dependencies.
docker buildx build --no-cache --progress plain -t main --platform linux/arm64 -f docker/Dockerfile -t aca-py-test-build .
...
#17 [main 9/10] RUN aries_cloudagent_package=$(find ./ -name "aries_cloudagent*.whl" | head -n 1) && echo "Installing ${aries_cloudagent_package} ..." && pip install --no-cache-dir --find-links=. ${aries_cloudagent_package}[askar,bbs] && rm aries_cloudagent*.whl
#17 0.516 Installing ./aries_cloudagent-0.8.0rc0-py3-none-any.whl ...
#17 13.60 Looking in links: .
#17 13.66 Processing ./aries_cloudagent-0.8.0rc0-py3-none-any.whl
...
#17 58.73 ERROR: Could not find a version that satisfies the requirement ursa-bbs-signatures~=1.0.1; extra == "bbs" (from aries-cloudagent[askar,bbs]) (from versions: none)
#17 58.73 ERROR: No matching distribution found for ursa-bbs-signatures~=1.0.1; extra == "bbs"
...
docker buildx build --no-cache --progress plain -t main --platform linux/386 -f docker/Dockerfile -t aca-py-test-build .
...
#17 [main 9/10] RUN aries_cloudagent_package=$(find ./ -name "aries_cloudagent*.whl" | head -n 1) && echo "Installing ${aries_cloudagent_package} ..." && pip install --no-cache-dir --find-links=. ${aries_cloudagent_package}[askar,bbs] && rm aries_cloudagent*.whl
#17 0.477 Installing ./aries_cloudagent-0.8.0rc0-py3-none-any.whl ...
#17 1.884 Looking in links: .
...
#17 19.30 ERROR: Could not find a version that satisfies the requirement indy-credx~=0.3; extra == "askar" (from aries-cloudagent[askar,bbs]) (from versions: 0.2.1, 0.2.3)
#17 19.30 ERROR: No matching distribution found for indy-credx~=0.3; extra == "askar"...
About this issue
- Original URL
- State: open
- Created a year ago
- Comments: 16 (14 by maintainers)
Commits related to this issue
- Temporarily disable multi-architecture image builds - Temporarily disable multi-architecture image builds until the required dependencies publish compatible packages. - Details here; https://github.c... — committed to WadeBarnes/aries-cloudagent-python by WadeBarnes a year ago
- Temporarily disable multi-architecture image builds - Temporarily disable multi-architecture image builds until the required dependencies publish compatible packages. - Details here; https://github.c... — committed to WadeBarnes/aries-cloudagent-python by WadeBarnes a year ago
- Temporarily disable multi-architecture image builds - Temporarily disable multi-architecture image builds until the required dependencies publish compatible packages. - Details here; https://github.c... — committed to hyperledger/aries-cloudagent-python by WadeBarnes a year ago
As we’re still waiting on items for the next assignment, I’ve spoken with Andrew and will make a move on this today.
Thanks for the clarification. Yes, this would be a good “filler” if capacity allows for it, I will let @amanji decide on that.
Summary of work that needs to be done to support multiarchitecture aca-py images:
The published packages for
aries-askar
,indy-credx
, andindy-vdr
need to be updated/released with support forlinux/arm64
andlinux/386
; either in binary or source form.The requirements.askar.txt file needs to be updated to reference the updated releases.
In order to support BBS+, the same steps need to be taken with the published packages for
ursa-bbs-signatures
(requirements.bbs.txt) which are associated with the mattrglobal/ffi-bbs-signatures project.Finally support for multiarchitecture builds must be reenabled in the publish workflows, as it was disabled by https://github.com/hyperledger/aries-cloudagent-python/pull/2125.