Are you still running some image builders on an emulator?

Because, according to Docker team, this would be the reason why the native library for Tomcat can’t be build :

Hi, it’s still built with QEMU for the ARM images, but we are exploring other options as well. Will look into that issue you linked, and see whether there’s any chance to mitigate this with the current infrastructure.

For at test whether that’s the case (and a workaround), could do a build with Docker on a Raspberry Pi and do a resin deploy, to build your image locally, and just push it through resin.io to the managed devices. See resin deploy --help for the options available for this.

Ok, thanks, I’ll test this on monday.

For this tomcat build, it’s not a blocking issue to me (cause it can work without the native library), but if other C language compilations are prevented by the emulator, it could become one.

We’ve seen more QEMU gotchas on with golang projects, but it’s always good to have some feedback on other serious compilations, what kind of issues you run into.

By the way :bulb:, just tried it out, it seems you can use a resin.io device running a -dev resinOS version in local mode to be your builder:

resin deploy --build --source . --dockerHost <shortUUID>.local --dockerPort 2375 AppName

(where the <shortUUID> is what’s displayed in the dashboard, and the AppName is the app that you are building). I think the device should be the same architecture as the one you are compiling for (e.g. you can have one RPi3 to compile for all your RPi3 apps), but otherwise, here’s a no-extra-setup unvirtualized builder. :wink:
(though probably not very speedy).

I’ve just tried this “resin deploy” command with this Dockerfile : https://github.com/docker-library/tomcat/blob/82b1da640aa15ff2e9713e59dba3dbf7487d6815/8.5/jre8-alpine/Dockerfile (replacing the FROM line with “FROM resin/%%RESIN_MACHINE_NAME%%-alpine-openjdk:8-jre”).

In the beginning of the build, it says :

(...)
[Build]   Removing intermediate container fa373f8b8f7c
[Build]   Step 11 : ENV TOMCAT_MAJOR 8
[Build]    ---> Running in 005323bc4c0f
[Build]    ---> 8f4a49083100
[Build]   Removing intermediate container 005323bc4c0f
[Build]   Step 12 : ENV TOMCAT_VERSION 8.5.15
[Build]    ---> Running in a722cde975d1
unknown parent image ID sha256:8f4a4908310089b800e49c4ba7132308956a00f169ca1b3a364dc85b74c05cc0

If you need help, don't hesitate in contacting us at:

  GitHub: https://github.com/resin-io/resin-cli/issues/new

P.S. : For this test I’m running resin CLI from Windows in case it matters, but it looks like the error is on the builder anyway, not on resin client side.

Can you tell a bit more about how exactly are you running that?

Just tried it on Windows 10, with a Raspberry Pi3 in local mode as a builder, with resin-cli at v5.10.1, Node.js v7.10.0, and it the build works totally fine, using the Dockerfile (actually Dockerfile.template) as you’ve mentioned, and the command above.

(A note, though, that the build finishes, so I didn’t see the same issue as you did, but did run into another bug later in the deploy process which was filed).

Sure, for this test, I’m on :

  • Node LTS version (6.10.3)
  • Windows 7
  • Raspberry Pi 1
  • resin-cli 5.9.1