tl;dr
I’m using julia 1.5.4, and I have a few custom sysimages. Is there a way to tell what cpu_target these sysimages were compiled for?
Background
- I create a docker image with julia,
- A few of the build stages involve creating julia sysimages (using PackageCompiler v1.2.5, the
cpu_target
parameter is unset.). - The docker image is created successfully and contains the custom sysimage.
- When I start a container, it contains the same version of julia and the sysimage
- If I try to start julia inside this container using the sysimage, I get
ERROR: Unable to find compatible target in system image.
- If I rebuild the sysimage in the running container, it now has a different file size, and works.
Hypotheses
- One guess is that the host that runs the docker build has a different CPU architecture than the host where containers are run, and this is causing an issue, but the default julia sysimage clearly works in both.
- There’s something special with docker / virtualization systems that I’m not clear on
How to debug?
My first step in debugging this is to try and determine what cpu_target is being used during build vs runtime, however I don’t know how to tell what julia sees as the cpu_target.
Thanks in advance.