Hi Laurence

Many thanks for all the info, totally agree that ARM support could be very useful for the future with the new hardware.

I've only built the Wikibase docker image without "extras" but I'll give it a try.

WM has a complex CI/CD with Jenkins, that's the correct way but needs a lot of effort. What I've done is build manually all required docker images using the Dockerfiles (with some changes) from official git repos, including the base images for stretch/buster using the same build shell script from their repo (with some minor changes too). Finally I was able to generate the "composer-php73" docker image for ARM (my problem in the first message), then I built a wikibase docker image following the instructions:
https://github.com/wmde/wikibase-release-pipeline/blob/main/docs/topics/pipeline.md#running-the-pipeline-locally

I'll write clean notes about all the steps that I followed and pass you, it would be great if WMDE includes ARM64 support.

Best,
  JM




On Sun, Nov 7, 2021 at 10:23 PM Laurence Parry <greenreaper@hotmail.com> wrote:
Hi JM (and Maarten),

The prospect of ARM64 support is something I've been looking into for a while now. It's not just Pi, but Apple M1; and relatively cheap servers from Ampere:
https://www.anandtech.com/show/16315/the-ampere-altra-review
https://www.anandtech.com/show/16979/the-ampere-altra-max-review-pushing-it-to-128-cores-per-socket
...and VMs from Oracle, AWS, GCP, etc. So it'd be great to see what you've done so far so we can perhaps build on it, perhaps even with the ultimate goal of getting WMDE to pick it up as an architecture option for its releases. (We should open a ticket towards that goal, as a full release has quite a few dependencies.)

Not sure exactly how much you achieved so far, so some of this may be redundant, but here's some relevant components I collected for a draft reply to you earlier email:

WMF does not see supporting ARM64 packages as a big priority, because it would be a lot of work for an infrastructure they do not currently use:
https://phabricator.wikimedia.org/T274140
https://phabricator.wikimedia.org/T283073
Which I guess is quite reasonable.

However there is still a ticket working towards ARM64 support for development images:
https://phabricator.wikimedia.org/T272500

So far an ElasticSearch 6 image has been created which may be important, as I gather newer versions of Wikibase increasingly rely on CirrusSearch:
https://gitlab.wikimedia.org/kharlan/wmf-elasticsearch-arm64

See https://mediawiki.org/wiki/Help:Extension:WikibaseCirrusSearch and https://mediawiki.org/wiki/Extension:WikibaseCirrusSearch for details of relevant functionality.

If this changes to OpenSearch (ES 7.10.2+ API):
https://phabricator.wikimedia.org/T280482
...then https://www.docker.elastic.co/r/elasticsearch/elasticsearch-oss:7.10.2-arm64 or a similar build from OpenSearch may be helpful instead. This seems likely to happen for a future release of MediaWiki (1.38+?):
https://phabricator.wikimedia.org/T263142

I found an ARM64 build of Blazegraph 2.2.2 here:
https://hub.docker.com/r/robcast/researchspace-blazegraph
This might not be exactly what is required for WDQS, which has its own modifications, but perhaps it would be a step towards it?

If a base system is needed, this might be useful?
https://hub.docker.com/layers/mediawiki/library/mediawiki/stable-fpm-alpine/images/sha256-2f115866c9c2edd6738dc050a7fef9ef88f2388814c78d9de654bccb80d2086c?context=explore

If you want something beefier for native building, Oracle has free ARM64 VMs up to 1x 4-core/24GB if you can navigate their registration and instantiation process: https://www.oracle.com/uk/cloud/free/

--
Laurence 'GreenReaper' Parry


From: jm <zauron.subs@gmail.com>
Sent: Saturday, November 6, 2021 9:51:37 PM
To: Wikibase Community User Group <wikibaseug@lists.wikimedia.org>
Subject: [Wikibase] Wikibase ARM 64
 
Hi all,

I would like to run a Wikibase instance in my Raspberry Pi 4 for demo/sandbox purposes.
I'm trying to generate a Wikibase docker image for ARM 64 bits, using a Raspberry Pi 4 (ARMv8) but I get this error:

+ docker run --volume /tmp/tmp.dBLABg/Wikibase/composer.json:/tmp/composer.json --volume /tmp/tmp.dBLABg/Wikibase/vendor/:/tmp/vendor/ docker-registry.wikimedia.org/releng/composer-php73:latest install --no-dev --ignore-platform-reqs -vv -d /tmp/
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
standard_init_linux.go:228: exec user process caused: exec format error

Then I need a "docker-registry.wikimedia.org/releng/composer-php73" image for ARM, where could I find the source code to generate this image from scratch?

Best regards,
  JM


_______________________________________________
Wikibaseug mailing list -- wikibaseug@lists.wikimedia.org
To unsubscribe send an email to wikibaseug-leave@lists.wikimedia.org