taniarascia / takenote

📝 ‎ A web-based notes app for developers.

Home Page:https://takenote.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug] Cannot build docker image to linux/arm/v7 (raspberry pi)

nrgapple opened this issue · comments

To Reproduce

  1. turn on experimental cli of docker

docker buildx build --platform linux/arm/v7 --build-arg CLIENT_ID=[your-id] -t takenote:latest

Expected behavior

Build a docker image that supports raspberry pi (arm/v7)

Actual behavior

node-sass seems to fail:

Output
264.4 Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/linux-arm-72_binding.node
#9 265.1 Cannot download "https://github.com/sass/node-sass/releases/download/v4.14.1/linux-arm-72_binding.node":
#9 265.1
#9 265.1 HTTP error 404 Not Found
#9 265.1
#9 265.1 Hint: If github.com is not accessible in your location
#9 265.1       try setting a proxy via HTTP_PROXY, e.g.
#9 265.1
#9 265.1       export HTTP_PROXY=http://example.com:1234
#9 265.1
#9 265.1 or configure npm proxy via
#9 265.1
#9 265.1       npm config set proxy http://example.com:8080
#9 266.7 Building: /usr/local/bin/node /app/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
#9 268.4 gyp info it worked if it ends with ok
#9 268.4 gyp verb cli [
#9 268.4 gyp verb cli   '/usr/local/bin/node',
#9 268.4 gyp verb cli   '/app/node_modules/node-gyp/bin/node-gyp.js',
#9 268.4 gyp verb cli   'rebuild',
#9 268.4 gyp verb cli   '--verbose',
#9 268.4 gyp verb cli   '--libsass_ext=',
#9 268.4 gyp verb cli   '--libsass_cflags=',
#9 268.4 gyp verb cli   '--libsass_ldflags=',
#9 268.4 gyp verb cli   '--libsass_library='
#9 268.4 gyp verb cli ]
#9 268.4 gyp info using node-gyp@3.8.0
#9 268.4 gyp info using node@12.20.0 | linux | arm
#9 268.4 gyp verb command rebuild []
#9 268.4 gyp verb command clean []
#9 268.5 gyp verb clean removing "build" directory
#9 268.6 gyp verb command configure []
#9 268.7 gyp verb check python checking for Python executable "python2" in the PATH
#9 268.7 gyp verb `which` failed Error: not found: python2
#9 268.7 gyp verb `which` failed     at getNotFoundError (/app/node_modules/node-gyp/node_modules/which/which.js:13:12)
#9 268.7 gyp verb `which` failed     at F (/app/node_modules/node-gyp/node_modules/which/which.js:68:19)
#9 268.7 gyp verb `which` failed     at E (/app/node_modules/node-gyp/node_modules/which/which.js:80:29)
#9 268.7 gyp verb `which` failed     at /app/node_modules/node-gyp/node_modules/which/which.js:89:16
#9 268.7 gyp verb `which` failed     at /app/node_modules/isexe/index.js:42:5
#9 268.7 gyp verb `which` failed     at /app/node_modules/isexe/mode.js:8:5
#9 268.7 gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:168:21)
#9 268.7 gyp verb `which` failed  python2 Error: not found: python2
#9 268.7 gyp verb `which` failed     at getNotFoundError (/app/node_modules/node-gyp/node_modules/which/which.js:13:12)
#9 268.7 gyp verb `which` failed     at F (/app/node_modules/node-gyp/node_modules/which/which.js:68:19)
#9 268.7 gyp verb `which` failed     at E (/app/node_modules/node-gyp/node_modules/which/which.js:80:29)
#9 268.7 gyp verb `which` failed     at /app/node_modules/node-gyp/node_modules/which/which.js:89:16
#9 268.7 gyp verb `which` failed     at /app/node_modules/isexe/index.js:42:5
#9 268.7 gyp verb `which` failed     at /app/node_modules/isexe/mode.js:8:5
#9 268.7 gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:168:21) {
#9 268.7 gyp verb `which` failed   code: 'ENOENT'
#9 268.7 gyp verb `which` failed }
#9 268.7 gyp verb check python checking for Python executable "python" in the PATH
#9 268.7 gyp verb `which` failed Error: not found: python
#9 268.7 gyp verb `which` failed     at getNotFoundError (/app/node_modules/node-gyp/node_modules/which/which.js:13:12)
#9 268.7 gyp verb `which` failed     at F (/app/node_modules/node-gyp/node_modules/which/which.js:68:19)
#9 268.7 gyp verb `which` failed     at E (/app/node_modules/node-gyp/node_modules/which/which.js:80:29)
#9 268.7 gyp verb `which` failed     at /app/node_modules/node-gyp/node_modules/which/which.js:89:16
#9 268.7 gyp verb `which` failed     at /app/node_modules/isexe/index.js:42:5
#9 268.7 gyp verb `which` failed     at /app/node_modules/isexe/mode.js:8:5
#9 268.7 gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:168:21)
#9 268.7 gyp verb `which` failed  python Error: not found: python
#9 268.7 gyp verb `which` failed     at getNotFoundError (/app/node_modules/node-gyp/node_modules/which/which.js:13:12)
#9 268.7 gyp verb `which` failed     at F (/app/node_modules/node-gyp/node_modules/which/which.js:68:19)
#9 268.7 gyp verb `which` failed     at E (/app/node_modules/node-gyp/node_modules/which/which.js:80:29)
#9 268.7 gyp verb `which` failed     at /app/node_modules/node-gyp/node_modules/which/which.js:89:16
#9 268.7 gyp verb `which` failed     at /app/node_modules/isexe/index.js:42:5
#9 268.7 gyp verb `which` failed     at /app/node_modules/isexe/mode.js:8:5
#9 268.7 gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:168:21) {
#9 268.7 gyp verb `which` failed   code: 'ENOENT'
#9 268.7 gyp verb `which` failed }
#9 268.8 gyp ERR! configure error
#9 268.8 gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
#9 268.8 gyp ERR! stack     at PythonFinder.failNoPython (/app/node_modules/node-gyp/lib/configure.js:484:19)
#9 268.8 gyp ERR! stack     at PythonFinder.<anonymous> (/app/node_modules/node-gyp/lib/configure.js:406:16)
#9 268.8 gyp ERR! stack     at F (/app/node_modules/node-gyp/node_modules/which/which.js:68:16)
#9 268.8 gyp ERR! stack     at E (/app/node_modules/node-gyp/node_modules/which/which.js:80:29)
#9 268.8 gyp ERR! stack     at /app/node_modules/node-gyp/node_modules/which/which.js:89:16
#9 268.8 gyp ERR! stack     at /app/node_modules/isexe/index.js:42:5
#9 268.8 gyp ERR! stack     at /app/node_modules/isexe/mode.js:8:5
#9 268.8 gyp ERR! stack     at FSReqCallback.oncomplete (fs.js:168:21)
#9 268.8 gyp ERR! System Linux 5.4.39-linuxkit
#9 268.8 gyp ERR! command "/usr/local/bin/node" "/app/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
#9 268.8 gyp ERR! cwd /app/node_modules/node-sass
#9 268.8 gyp ERR! node -v v12.20.0
#9 268.8 gyp ERR! node-gyp -v v3.8.0
#9 268.8 gyp ERR! not ok
#9 268.8 Build failed with error code: 1

This seems like an issue with node-sass and that environment, not TakeNote...

@taniarascia right. testing with dart-sass. Just saying many people may want to build on arm (raspberry pi and now apple making the push). It could beneficial to use dependencies that are compatible between hardware

sass/node-sass#2647

Got it. Did you have any luck with dart-sass?

many more

output
#9 2.428 Unknown QEMU_IFLA_INFO_KIND ipip
#9 2.429 Unknown QEMU_IFLA_INFO_KIND ip6tnl
#9 399.5 husky > Setting up git hooks
#9 399.6 Cannot read property 'toString' of null
#9 399.6 husky > Failed to install
#9 412.5   ⚠ spawn /app/node_modules/cwebp-bin/vendor/cwebp ENOENT
#9 412.5   ⚠ cwebp pre-build test failed
#9 412.5   ℹ compiling from source
#9 1151.   ✔ cwebp built successfully
#9 1155.   ⚠ Response code 404 (Not Found)
#9 1155.   ⚠ gifsicle pre-build test failed
#9 1155.   ℹ compiling from source
#9 1386.   ✔ gifsicle built successfully
#9 1392.   ⚠ spawn /app/node_modules/mozjpeg/vendor/cjpeg ENOENT
#9 1392.   ⚠ mozjpeg pre-build test failed
#9 1392.   ℹ compiling from source
#9 1411.   ✖ Error: Command failed: /bin/sh -c autoreconf -fiv
#9 1411. autoreconf: Entering directory `.'
#9 1411. autoreconf: configure.ac: not using Gettext
#9 1411. autoreconf: running: aclocal --force
#9 1411. autoreconf: configure.ac: tracing
#9 1411. autoreconf: configure.ac: not using Libtool
#9 1411. autoreconf: running: /usr/bin/autoconf --force
#9 1411. configure.ac:23: error: possibly undefined macro: AC_PROG_LIBTOOL
#9 1411.       If this token and others are legitimate, please use m4_pattern_allow.
#9 1411.       See the Autoconf documentation.
#9 1411. autoreconf: /usr/bin/autoconf failed with exit status: 1
#9 1411.
#9 1411.
#9 1411.     at /app/node_modules/bin-build/node_modules/execa/index.js:231:11
#9 1411.     at runMicrotasks (<anonymous>)
#9 1411.     at processTicksAndRejections (internal/process/task_queues.js:97:5)
#9 1411.     at async Promise.all (index 0)
#9 1416.   ⚠ spawn /app/node_modules/optipng-bin/vendor/optipng ENOENT
#9 1416.   ⚠ optipng pre-build test failed
#9 1416.   ℹ compiling from source
#9 1554.   ✔ optipng built successfully
#9 1560.   ✔ pngquant pre-build test passed successfully
#9 1570. The Cypress App could not be downloaded.
#9 1570.
#9 1570. Does your workplace require a proxy to be used to access the Internet? If so, you must configure the HTTP_PROXY environment variable before downloading Cypress. Read more: https://on.cypress.io/proxy-configuration

Sincey you made another issue for this, I'm going to mark this one as duplicate.

#454