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

Most upvoted comments

As we’re still waiting on items for the next assignment, I’ve spoken with Andrew and will make a move on this today.

The issue is with the BBS Signatures dependency. The work needed to do that is (at a high level) documented in this issue — hyperledger/aries-bbssignatures-rs#8. I was going to see if @amanji could do that one prior to his next big assignment.

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: