Open odidev opened 1 year ago
Hi @odidev, great to hear that building the images manually worked!
Adding support for ARM would be great, would you maybe be interested in providing a PR that adds ARM images?
@SimonEismann
I have changed the build_docker.sh
file for the release of Arm64 Docker images.
Commit Link: Add ARM64 support to Docker images · odidev/TeaStore@b5f52bd (github.com)
I have used Buildx for building Multi-arch Docker images.
It seems that you are using the development
branch for the release of Docker images with the tags development
and version tag
through the development.yml and prepareRelease.yml files on GitHub. I am happy to contribute if required.
There is still no arm64 image on DockerHub.
Sorry for the late reply.
I've merged the changes back into development to trigger a new version and it ran into some issues with the tests.
Further, it did upload a newer version , see here, but it is not ARM.
Looks like it'll take additional work to get the ARM builds working. I'll take a look at it, but it might take a while until I get around to it.
Hi @SimonEismann ,
I have gone through the logs of running tests on GitHub actions.
For the Build and publish Docker images of TeaStore
job, I have added the Buildx to build and push multi-arch images. Please find the commit link below: -
Commit Link:- https://github.com/odidev/TeaStore/commit/356ec925cad905490c9543ef4a4b390eaf59079f
For the rest of the failed Test jobs, we have to login to Dockerhub before using Buildx to build a multi-arch image. Docker Buildx doesn’t support --load
flag for multi-platform, so I have added --push
flag. This is the reason why tests are failing.
Please check this if it looks good, then I can raise PR for the same.
This looks good. Can you open up a PR against the development branch? We can iterate on that branch to get the images to compile for both platforms and then release a new teastore version.
EDIT: Upon a second look, we would probably need to apply the changes to the release pipeline as well first.
Hi @SimonEismann
I have created a fresh PR for the release of multi-arch Docker images in the development
branch.
Kindly review this PR and suggest if anything needs to be altered.
Hi @SimonEismann
Thanks for merging the PR, Docker images with tag development
have been released and I have checked the images on the Arm64 platform, they are working fine.
I have gone through the logs of failed tests. In the file build_docker.sh, at line 3, the registry variable is empty. Docker Buildx by default uses library
as a registry. See here in the logs.
To release Docker images with the latest
and git-version
tags, we must give the registry name at line 3 of the build_docker.sh file, we can’t leave it blank.
It is awesome to see that we now have both ARM and x86 images available:
I think the registry was left blank for these tests on purpose because we don't want the tests to push the images to docker hub. I'll take a look at how we can stop these tests from pushing the images. However, I've paged out how the maven/docker build interaction works, so it might take a few days until I find the time to look into this.
EDIT: Looking through the thread again, maybe we need to use the --load
flag instead of the --push
flag for these tests, and only use --push
for the step that uploads the images?
EDIT: Looking through the thread again, maybe we need to use the --load flag instead of the --push flag for these tests, and only use --push for the step that uploads the images?
Docker-Buildx doesn’t support --load
flag if --platform
flag has multiple values, like in our case.
For publishing the Multi-arch Docker image, Teastore uses prepareRelease.yml and development.yml workflow files for git-version
and development
tags respectively. We have already added Buildx support there.
One question, for the latest
tag Docker images, Are you publishing them through the build_docker.sh
script or is there some other workflow to do so?
I've fixed the tests and'll kick off a new release which should push out a new latest version.
Hm, looks like something isn't quite right in the release pipeline yet. I'll circle back to this later.
Hi @SimonEismann
I have tried to deploy
DescartesResearch/Tea-Store
microservices on the Arm64 platform by using the Docker-compose Method.Command:
docker-compose -f ./examples/docker/docker-compose_default.yaml up -d
The above command fails due to the unavailability of Arm64 Docker images.
I have tried building all those images on the Arm64 platform and all are getting built successfully.
Do you have any plans for supporting the Arm64 platform? It will be helpful if Arm64 Docker images are released. Please share your thoughts on the same.