I’ve got a strange problem when trying to build my application on resin.io. As part of the installation process I invoke Yarn, an alternative client for NPM, to install some packages. My setup is a little strange because Yarn hits a private NPM repository which runs in the background (accessible on localhost). However, it has been working well when deployed via
rdt push. Today I tried testing on resin.io and when the image build got to the step involving yarn it just hung:
[Build] yarn global v0.20.0 [Build] [1/4] Resolving packages... [Build] verbose Performing "GET" request to "http://localhost:13337/my-secret-package". [Build] <snipped log output from private registry process indicating request was served> [Info] Still working... [Info] Still working... [Info] Still working...
Yarn retries the request a couple times and then errors out. In my debugging I found out that
os.networkInterfaces() fails with an error that has the “syscall” attribute set to
uv_interface_addresses. This turned out to not be the problem but it made me suspect that there might be other differences between the docker build environment/invocation on resin.io and locally on my device.
So I have two questions:
- Is there an easy/known answer for why this fails on resin.io but not via
rdt push? Maybe the configuration necessary for setting up cross-compilation also changes how the network looks during the build?
- Could you kindly point me to where in the ResinOS codebase the
docker buildinvocation triggered by
rdt pushlives? This issue is probably due to something in the specifics of my approach so I’d be happy to track it down myself but I’m finding it a little daunting to trace the execution path across the ResinOS codebases.