rakudo / star

Rakudo Star (Raku distribution)
https://rakudo.org/
Artistic License 2.0
265 stars 41 forks source link

rakudo-star on ubuntu arm64 please #171

Open librasteve opened 2 years ago

librasteve commented 2 years ago

I see that croservices/docker does the following Dockerfile... I would love to deploy native arm64 on ubuntu .... but this is amd64 only ;-(

Maybe like this FROM --platform=linux/arm64 rakudo-star:latest

Doesn't have to be this particular version of rakudo-star...

FROM rakudo-star:2020.01
MAINTAINER Jonathan Worthington <jonathan@edument.se>

ARG cro_version=0.8.7

RUN apt-get update && \
    apt-get --yes --no-install-recommends install libssl-dev && \
    rm -rf /var/lib/apt/lists/* && \
    zef upgrade OpenSSL && \
    zef install 'Cro::Core:ver<'$cro_version'>' && \
    zef install 'Cro::TLS:ver<'$cro_version'>' && \
    zef install 'Cro::HTTP:ver<'$cro_version'>'
AntonOks commented 2 years ago

@p6steve

Sorry, no idea what your "issue" is all about. Do you want (me) to add a "ubuntu.Dockerfile" within https://github.com/rakudo/star/tree/master/lib/docker or...?

If so, pull requests are highly appreciated.

Regards AntonOks

librasteve commented 2 years ago

hi @AntonOks - yes please ... I am saying that the line

FROM rakudo-star:2020.01(or similar) only works on the amd64 (Intel) cpu platform or via Rosetta emulation (slow)

I want to run native on a mac M1, so I need this argument supported:

FROM --platform=linux/arm64 rakudo-star:2020.01 (or similar) which will build/run native on the arm64 (Arm) cpu platform

Personally I use ubuntu, but my guess is that the linux part of the platform argument covers ubuntu + debian + fedora so I guess that when I run docker under my ubuntu instances eg. on the Cro example it already runs one of these https://github.com/rakudo/star/tree/master/lib/docker - but I don't know enough about docker/linux to know which one.

I would try to PR but I am woefully ignorant about the rakudo-star process and the details around the docker --platform argument.

librasteve commented 2 years ago

I have been able to find out a little about the latest Docker buildx capability (which will replace docker build in the CLI) here

I think that this contains the essence of what I am asking for - that is a multiplatform (arm64 & amd64) rakudo-star docker image.

So I would suggest morphing this Issue into a generic request to implement this (or similar):

docker buildx build --platform=linux/amd64,linux/arm64 .

Since this can be enabled as experimental now and will soon become the standard docker build technique - I hope that this is relatively painless to implement at some point ...?