Building Docker Container on x86_64 to use on aarch64

Hello, I am trying to develop python code for projects that work on my Ubuntu 18.04 x86_64 architecture and then run the same code on an NVIDIA Xavier which is aarch64 architecture. The main issue is that the code requires certain versions of python packages which I am unable to download onto the Xavier; the problem apparently being that the arm architecture versions of those package versions have not been made yet. The most important package version discrepancy being with pytorch, torchvision, and opencv.

I recently discovered Docker, and it sounded like I could work around this. Since I’m new, I’m a bit unsure of the procedure (or if what I want to do is actually possible):

  • Write python code that depends on certain versions of package on my x86_64 Ubuntu 18.04 machine.
  • Execute this same python code (which depends on the same versions of packages) on the arm64 machine

I have searched online and I’m really not sure if the references I’m looking at do exactly what I stated above. I’ve seen some websites talking about building arm containers on x86 machines, but I feel like what I need is to build an x86 container and have it run on arm architecture? It’d be great to get confirmation/denial that what I want to do is possible and then get pointed to the right instruction set (or have it explained to me). Thank you!

1 Like