ucd-library / fin

FIN (Fedora IN docker) Base Services
MIT License
0 stars 0 forks source link

node version mis-match with fin-init:2.3.1 #70

Open qjhart opened 1 year ago

qjhart commented 1 year ago

I'm getting a strange error w/ fin-init:2.3.1. The binaries for grpc don't seem to be correct.

On my machine this can be shown with:

 docker run --entrypoint /bin/bash --rm  gcr.io/ucdlib-pubreg/fin-init:2.3.1 -c '{ cd /fin/services; node <<< "require(\"grpc\")"; }'
/fin/services/node_modules/grpc/src/grpc_extension.js:55
    throw error;
    ^

Error: Failed to load gRPC binary module because it was not installed for the current system
Expected directory: node-v108-linux-x64-glibc
Found: [node-v93-linux-x64-glibc]
This problem can often be fixed by running "npm rebuild" on the current system
Original error: Cannot find module '/fin/services/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc/grpc_node.node'
Require stack:
- /fin/services/node_modules/grpc/src/grpc_extension.js
- /fin/services/node_modules/grpc/src/client_interceptors.js
- /fin/services/node_modules/grpc/src/client.js
- /fin/services/node_modules/grpc/index.js
- /fin/services/[stdin]
    at Object.<anonymous> (/fin/services/node_modules/grpc/src/grpc_extension.js:53:17)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/fin/services/node_modules/grpc/src/client_interceptors.js:144:12)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) {
  code: 'MODULE_NOT_FOUND'
}

Node.js v18.18.0

I can fix this in my aggie-experts/init image with

ARG FIN_INIT
FROM ${FIN_INIT}

RUN cd /fin/services && npm rebuild

COPY fcrepo-aggie-experts /etc/ucdlib-service-init/fcrepo-aggie-experts

COPY init-aggie-experts.sh /init-aggie-experts.sh
RUN chmod +x /init-aggie-experts.sh

CMD ["/init-aggie-experts.sh"]