I am attempting to run a small container on a RB5009UG+S+ running ROS 7.16.2 (have also tried on ROS 7.17rc3). When I add the container:
/container add file=usb2/myimage.tar root-dir=usb2/myimage interface=veth3
I get these results in the log:
importing tar archived image: myimage.tar
error getting layer file
failed to load next entry
import finished but no image found
I can successfully pull remote images from Docker hub and run them on RB5009 with results as expected, so I’m fairly confident I have the device (and veth’s and bridges, etc.) set up correctly. I can successfully build and run my Docker container on my desktop. But the image won’t extract or load properly on the RB5009 from a .tar that I supply.
My Dockerfile (below) is very simple and I don’t suspect the binary I’m using is the culprit as it’s very small. I’ve even tried a “blank” alpine image (a little trickier because the container needs something to run) and I always get the same extraction error on loading.
FROM arm64v8/alpine:latest
COPY mybinary /mybinary
EXPOSE 1234/tcp
CMD ["/mybinary", "-v"]
I’m using this command to build:
docker buildx build --no-cache --platform linux/arm64 -t myimage .
And then I export with this command:
docker save myimage > myimage.tar
Any suggestions? Does anyone else have success building arm64 images on a Windows machine with Docker desktop and then running on a Mikrotik device?