Git Product home page Git Product logo

Comments (17)

barthy1 avatar barthy1 commented on May 22, 2024 1

Update from my side, with /bin/sh entrypoint it works

# docker run -ti --rm --entrypoint=/bin/sh alpine/helm:3.5.0-rc.1
/apps # uname -m
s390x

so actually just helm version doesn't, as helm binary in the current Dockerfile has amd64 version for all archs - https://github.com/alpine-docker/helm/blob/master/Dockerfile#L10

from git.

barthy1 avatar barthy1 commented on May 22, 2024 1

just fyi, docker buildx has nice set of predefined env variables https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope. TARGETARCH looks promising to fix helm build

from git.

barthy1 avatar barthy1 commented on May 22, 2024 1
# docker run -ti --rm alpine/git:multi version
Unable to find image 'alpine/git:multi' locally
multi: Pulling from alpine/git
3997176601fb: Already exists
8a0ac3530f85: Pull complete
724b374f1a16: Pull complete
Digest: sha256:d0eb5e18f4b7ca63b73a2c687cc6ea68b8e30c02430fa6b7e58d66f840288e73
Status: Downloaded newer image for alpine/git:multi
git version 2.30.0
# docker run -ti --rm --entrypoint=sh alpine/git:multi
/git # uname -m
s390x
# docker run -ti --rm alpine/git:multi version
Unable to find image 'alpine/git:multi' locally
multi: Pulling from alpine/git

cb0f06c26ffd: Already exists
960f1be7c9b3: Pull complete
63b6d4c3f1b9: Pull complete
Digest: sha256:d0eb5e18f4b7ca63b73a2c687cc6ea68b8e30c02430fa6b7e58d66f840288e73
Status: Downloaded newer image for alpine/git:multi
git version 2.30.0
# docker run -ti --rm --entrypoint=sh alpine/git:multi
/git # uname -m
ppc64le

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

@barthy1

The old part of multi-arch need be re-written.

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

@barthy1

Could you please run a test on a ARM64 machine with below command:

docker run -ti --rm alpine/helm:3.5.0-rc.1 version

what output do you get?

I need a final confirmation to prove if my way is correct or not.

from git.

barthy1 avatar barthy1 commented on May 22, 2024

@ozbillwang I have s390x or ppc64le hardware only to verify. Could you please add linux/s390x platform to your build for me to verify?

Also found interesting blog post about building with docker buildx on Travis - https://www.docker.com/blog/multi-arch-build-what-about-travis. However do you think it's time to move to Github actions for the same purpose https://github.com/marketplace/actions/docker-buildx#quick-start?

Anyway I think using docker buildx can be simpler and cleaner solution for multi-arch, so it would be great to use it.

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

@barthy1

I have built for s390x and ppc64le, could you test now?

image

two test commands:

docker run -ti --rm alpine/helm:3.5.0-rc.1 version

and

$ docker run -ti --rm --entrypoint=sh alpine/helm:3.5.0-rc.1
/apps # uname -m

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

For your second question. I still think Github Action is in early age currently, not mature enough, we can migrate all of them to Github Action later. But now, it is not suitable.

The main reason is, I don't see the feature to manage secrets properly.

In travis, I can manage secrets with nominated branches. I don't see the same feature in Github Action.

from git.

barthy1 avatar barthy1 commented on May 22, 2024
# uname -m
ppc64le
# docker run -ti --rm alpine/helm:3.5.0-rc.1 version
standard_init_linux.go:175: exec user process caused "exec format error"
# uname -m
s390x
# docker run -it --rm alpine/helm:3.5.0-rc.1 version
standard_init_linux.go:211: exec user process caused "exec format error"

The error means that image is running on wrong architecture. Because it's not running I cannot login inside and check uname -m.
Let me try to do alpine/helm build also on my env with configured buildx, just to check. So far I don't understand why we got this failing result

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

could you pull again to make sure it doesn't use the old one.

docker pull alpine/helm:3.5.0-rc.1
docker run -ti --rm alpine/helm:3.5.0-rc.1 version

from git.

barthy1 avatar barthy1 commented on May 22, 2024

done. Same result

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

You can build git image directly and test

replace <your_org> with your own org, that you have write permission to push

# to make sure the support platforms
docker buildx ls

docker buildx build --platform linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,linux/s390x  --tag <your_org>/git --push .

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

ic. Thanks to find it out. that codes are hard coded, will fix it.

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

The Dockerfile for git has no same issue. I built a special tag alpine/git:multi for you to run test.

image

This is the command for your reference:

docker buildx build --platform linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6  --tag alpine/git:multi --push .

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

Did you have chance to test the git image on s390x and ppc64le?

# uname -m
s390x

# docker pull alpine/git:multi 
# docker run -it --rm alpine/git:multi version

What's the output?

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

Thanks for the confirmation.

Currently I can't install other multi-arch platfroms in Travis, will try later.

https://travis-ci.org/github/ozbillwang/travis-demo/builds/754997888

https://github.com/ozbillwang/travis-demo/blob/main/.travis.yml

image

from git.

ozbillwang avatar ozbillwang commented on May 22, 2024

all related multi-arch related issues, please follow up at alpine-docker/multi-arch-docker-build-on-ci#1

from git.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.