Hi Again!
I did some more tests and it seems that the proposed changes should not be necessary if using the “—platform”
argument like below. Then it should not be needed to specify “—platform”
in the Dockerfile as it will be inherited. (You might need to install qemu-user-static depending on your distribution) . I also did not experience any problems using “scratch” in the last step, so for now
my conclusion is that no change is needed
docker build -f app/Dockerfile --progress=plain --platform=linux/arm64 -t ex5:latest .
I did however create an issue at
https://github.com/eclipse-velocitas/vehicle-app-cpp-template/issues/107 to discuss if we should document cross compilation better. If you have further concerns or problems with cross
compilation feel free to add an issue at
https://github.com/eclipse-velocitas/vehicle-app-cpp-template/issues, and/or join the next Velocitas Developer Meeting.
Med vänlig hälsning / Best regards,
Erik Jaegervall
XC/EEX-SE
Tel. +46 46 270-6821 | Mobile +46 70 420-1721
From: velocitas-dev <velocitas-dev-bounces@xxxxxxxxxxx>
On Behalf Of Jaegervall Erik (XC/EEX-SE) via velocitas-dev
Sent: Wednesday, June 26, 2024 11:35 AM
To: velocitas developer discussions <velocitas-dev@xxxxxxxxxxx>
Cc: Jaegervall Erik (XC/EEX-SE) <Erik.Jaegervall@xxxxxxxxxxxx>; Son Dao Thanh <SonDT1@xxxxxxx>; Khang Diep Chi <KhangDC1@xxxxxxx>
Subject: Re: [velocitas-dev] [Velocitas] vehicle-app-cpp-template arm64 docker image build issue
Thank you for the mail!
We will look further into it and come back with a more detailed answer after analysis. You are also welcome to join the next Velocitas/Kuksa developer meeting (see
https://github.com/eclipse-velocitas/velocitas-docs/wiki/Developer-Meetup(s)) if you need more support or want to discuss the topic further.
Med vänlig hälsning / Best regards,
Erik Jaegervall
XC/EEX-SE
Tel. +46 46 270-6821 | Mobile +46 70 420-1721
We found a maybe a minor issue in the Dockerfile when building it for arm64 machines.
We are creating a POC using the vehicle-app-cpp-template.
Everything worked great when we built the docker images in our host machine (amd64) and deployed it in ubuntu test machine (amd64).
However, when we built the docker image for arm64 and still using our host machine (amd64) and to be deployed in our edge devices (arm64).
The final image is still in amd64.
This is how docker build the apps:
$ cd vehicle-app-cpp-template/app
$ docker build -f app/Dockerfile --progress=plain --build-arg TARGETPLATFORM=linux/arm64 -t localhost:12345/app-seat-adjuster:0.0.1 .
After building it we docker image inspect the docker image.:
$ docker image inspect localhost:12345/app-seat-adjuster:0.0.1 | grep Arch
$ "Architecture": "amd64",
We fixed it by modifying cd vehicle-app-cpp-template/app/Dockerfile.
# FROM ghcr.io/eclipse-velocitas/devcontainer-base-images/cpp:v0.3 as builder
FROM --platform=$TARGETPLATFORM ghcr.io/eclipse-velocitas/devcontainer-base-images/cpp:v0.3 as builder
and
# FROM --platform=$TARGETPLATFORM scratch as runner
FROM --platform=$TARGETPLATFORM gcr.io/distroless/base-debian12 as runner
Note:
·
We did not use scratch since it will still default to linux/amd64 even supplying --platform=linux/arm64
After this minor fix. We can now successfully deploy it with our edge devices (arm64).
Does our Dockerfile changes is correct way to go forward or do you recommend another way to build docker(arm64) images using host(amd64)?
Your response is highly appreciated.
![](pngRb73MmhKm9.png)
|
EDULEEN TALLEDO (Mr.)
Software Development Engineer
FPT Automotive --
Philippines
IT Park, Cebu City, Philippines 6000
Mobile: +63 960-2430-526 | +84 379-488-928
Email:
eduleen.talledo@xxxxxxx
|
***********************************************************************
IMPORTANT NOTICE
This email may contain confidential and/ or privileged information that belongs to FPT Software. If you are not the intended recipient or might have received this email by accident from an unreliable source, please notify the sender from FPT Software immediately
and destroy this email. Keep in mind that any unauthorized copying, editing, disclosure or distribution of the material in this email is strictly forbidden, plus against the law by which FPT Software and involved clients abide.