dockerode
dockerode copied to clipboard
Cannot install Dockerode with Electron >= 20
First thank you for your great work to maintain this library.
I'm writing a dummy Electron app with electron >= 20 making use of dockerode
, and I cannot have cpu-features built correctly
yarn add v1.22.4
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
warning [email protected]: The engine "git" appears to be invalid.
[3/4] 🔗 Linking dependencies...
warning "xo > [email protected]" has unmet peer dependency "webpack@>=1.11.0".
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
success Saved 21 new dependencies.
info Direct dependencies
└─ [email protected]
info All dependencies
├─ @balena/[email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
└─ [email protected]
$ electron-builder install-app-deps
• electron-builder version=23.6.0
• loaded configuration file=package.json ("build" field)
• rebuilding native dependencies [email protected] platform=darwin arch=x64
• rebuilding native dependency name=cpu-features version=0.0.4
• cannot build optional native dependency name=cpu-features
version=0.0.4
cause=exit status 1
yarn run v1.22.4
$ node buildcheck.js > buildcheck.gypi && node-gyp rebuild
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/impl_aarch64_linux_or_android.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/impl_arm_linux_or_android.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/impl_mips_linux_or_android.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/impl_ppc_linux.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_freebsd.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_linux_or_android.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_macos.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/impl_x86_windows.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/filesystem.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/stack_line_reader.o
CC(target) Release/obj.target/cpu_features/deps/cpu_features/src/string_view.o
LIBTOOL-STATIC Release/cpu_features.a
CXX(target) Release/obj.target/cpufeatures/src/binding.o
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
errorOut=gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp info find Python using Python version 3.8.13 found at "/usr/local/opt/[email protected]/bin/python3.8"
gyp http GET https://electronjs.org/headers/v21.3.0/node-v21.3.0-headers.tar.gz
gyp http 200 https://artifacts.electronjs.org/headers/v21.3.0/node-v21.3.0-headers.tar.gz?force_headers_dist=1
gyp http GET https://electronjs.org/headers/v21.3.0/SHASUMS256.txt
gyp http 200 https://artifacts.electronjs.org/headers/v21.3.0/SHASUMS256.txt?force_headers_dist=1
gyp info spawn /usr/local/opt/[email protected]/bin/python3.8
gyp info spawn args [
gyp info spawn args '/Users/nhu-ductrungnguyen/.nvm/versions/node/v16.15.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/Users/nhu-ductrungnguyen/Test/electron-boilerplate/node_modules/cpu-features/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/nhu-ductrungnguyen/.nvm/versions/node/v16.15.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0',
gyp info spawn args '-Dnode_gyp_dir=/Users/nhu-ductrungnguyen/.nvm/versions/node/v16.15.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/Users/nhu-ductrungnguyen/Test/electron-boilerplate/node_modules/cpu-features',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
In file included from ../src/binding.cc:1:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/node.h:69:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8.h:24:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-array-buffer.h:12:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-local-handle.h:12:
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:471:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
SHARED_EXTERNAL_POINTER_TAGS(CHECK_SHARED_EXTERNAL_POINTER_TAGS)
^
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:471:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:471:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:471:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:471:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
PER_ISOLATE_EXTERNAL_POINTER_TAGS(CHECK_NON_SHARED_EXTERNAL_POINTER_TAGS)
^
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:472:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:655:61: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
static_assert(kJSObjectType + 1 == kFirstJSApiObjectType);
^
, ""
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:656:55: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
static_assert(kJSObjectType < kLastJSApiObjectType);
^
, ""
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-internal.h:657:63: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
static_assert(kFirstJSApiObjectType < kLastJSApiObjectType);
^
, ""
In file included from ../src/binding.cc:1:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/node.h:69:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8.h:24:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-array-buffer.h:13:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-object.h:9:
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-maybe.h:106:45: error: no template named 'is_lvalue_reference_v' in namespace 'std'; did you mean 'is_lvalue_reference'?
template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
~~~~~^~~~~~~~~~~~~~~~~~~~~
is_lvalue_reference
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/type_traits:910:29: note: 'is_lvalue_reference' declared here
struct _LIBCPP_TEMPLATE_VIS is_lvalue_reference : _BoolConstant<__is_lvalue_reference(_Tp)> { };
^
In file included from ../src/binding.cc:1:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/node.h:69:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8.h:24:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-array-buffer.h:13:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-object.h:9:
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-maybe.h:106:69: error: expected '(' for function-style cast or type construction
template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-maybe.h:123:43: error: no template named 'is_lvalue_reference_v' in namespace 'std'; did you mean 'is_lvalue_reference'?
template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
~~~~~^~~~~~~~~~~~~~~~~~~~~
is_lvalue_reference
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/type_traits:910:29: note: 'is_lvalue_reference' declared here
struct _LIBCPP_TEMPLATE_VIS is_lvalue_reference : _BoolConstant<__is_lvalue_reference(_Tp)> { };
^
In file included from ../src/binding.cc:1:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/node.h:69:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8.h:24:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-array-buffer.h:13:
In file included from /Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-object.h:9:
/Users/nhu-ductrungnguyen/.electron-gyp/21.3.0/include/node/v8-maybe.h:123:67: error: expected '(' for function-style cast or type construction
template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
21 warnings and 4 errors generated.
make: *** [Release/obj.target/cpufeatures/src/binding.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/nhu-ductrungnguyen/.nvm/versions/node/v16.15.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (node:events:527:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
gyp ERR! System Darwin 22.1.0
gyp ERR! command "/Users/nhu-ductrungnguyen/.nvm/versions/node/v16.15.0/bin/node" "/Users/nhu-ductrungnguyen/.nvm/versions/node/v16.15.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/nhu-ductrungnguyen/Test/electron-boilerplate/node_modules/cpu-features
gyp ERR! node -v v16.15.0
gyp ERR! node-gyp -v v9.0.0
gyp ERR! not ok
error Command failed with exit code 1.
command=/Users/nhu-ductrungnguyen/.nvm/versions/node/v16.15.0/bin/node /Users/nhu-ductrungnguyen/.yarn/bin/yarn.js run install
workingDir=/Users/nhu-ductrungnguyen/Test/electron-boilerplate/node_modules/cpu-features
✨ Done in 26.59s.
According to Electron 20 release notes, we need to Use node-gyp >=8.4.0 and electron-rebuild >=3.2.9 for when rebuilding native modules
. Even with that, the same error happens, I guess that all rebuild will use node-gyp
which gives the error above. The reproduction is below
I believe we already bumped cpu-features in the past (https://github.com/apocas/dockerode/issues/656).
Could you please advise me what to follow to resolve the issue? Thanks in advance