Node-Alpine: Initialization Failed
Closed this issue · 8 comments
Describe the bug
Seems like the package (Node) cannot be initialized when running under alpine
image.
Expected Behavior
Package should be initialized properly.
Current Behavior
When running under alpine
image (using official Node images), the code crashes with the error:
/usr/app/node_modules/@aws/glide-for-redis-linux-arm64/node_modules/glide-rs/index.js:269
throw loadError
^
Error: Cannot find module 'glide-rs-linux-arm64-musl'
Require stack:
- /usr/app/node_modules/@aws/glide-for-redis-linux-arm64/node_modules/glide-rs/index.js
- /usr/app/node_modules/@aws/glide-for-redis-linux-arm64/build-ts/index.js
- /usr/app/node_modules/@aws/glide-for-redis/build-ts/index.js
- /usr/app/dist/index.js
Reproduction Steps
Dockerfile
FROM node:18.19.0-alpine
# FROM node:18.19.0 # non-alpine - works
WORKDIR /usr/app
COPY *.json ./
RUN npm ci
COPY index.ts index.ts
CMD [ "npm", "run", "dev" ]
If you use the node:18.19.0
image instead of node:18.19.0-alpine
, it works as expected.
You can use the Demo I pushed here: https://github.com/ofirsnb/node-glide-demo
Possible Solution
If I understand correctly, it's an "issue" with the rs-glide
itself, not necessarily your wrapper.
Probably it's happening due to missing dependencies, because the alpine
is a very slim image.
If indeed that's the case, I think the best solution would be to add to the documentation the required dependencies, so we can install them during the docker build.
Additional Information/Context
No response
Client version used
0.3.3, 0.2.0
Redis Version
7.2
OS
Linux
Language
TypeScript
Language Version
5.4.3
Cluster information
No response
Logs
No response
Other information
No response
@ofirsnb Hi again :)
Thanks for opening the issue.
Support for docker env's wasn't planned in the close period, but your issue is an eye opener and it is important.
We will try to let it in our plans for GA and look into it.
First of all, you can feel free to contribute this feature if you feel like. We would really appreciate it.
In any case, can you list your node_moudoles?
Hey @avifenesh :)
I understand. Sure I'll try to take a look over the next few days, thank you for being so supportive:) And thanks for your efforts.!
Attaching the node_modules content (in the demo above):
node_modules content
./.package-lock.json
./@aws/glide-for-redis-linux-arm64/.ort.yml
./@aws/glide-for-redis-linux-arm64/DEVELOPER.md
./@aws/glide-for-redis-linux-arm64/README.md
./@aws/glide-for-redis-linux-arm64/THIRD_PARTY_LICENSES_NODE
./@aws/glide-for-redis-linux-arm64/build-ts/index.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/index.js
./@aws/glide-for-redis-linux-arm64/build-ts/index.js.map
./@aws/glide-for-redis-linux-arm64/build-ts/src/BaseClient.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/src/BaseClient.js
./@aws/glide-for-redis-linux-arm64/build-ts/src/BaseClient.js.map
./@aws/glide-for-redis-linux-arm64/build-ts/src/Commands.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/src/Commands.js
./@aws/glide-for-redis-linux-arm64/build-ts/src/Commands.js.map
./@aws/glide-for-redis-linux-arm64/build-ts/src/Errors.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/src/Errors.js
./@aws/glide-for-redis-linux-arm64/build-ts/src/Errors.js.map
./@aws/glide-for-redis-linux-arm64/build-ts/src/Logger.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/src/Logger.js
./@aws/glide-for-redis-linux-arm64/build-ts/src/Logger.js.map
./@aws/glide-for-redis-linux-arm64/build-ts/src/ProtobufMessage.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/src/ProtobufMessage.js
./@aws/glide-for-redis-linux-arm64/build-ts/src/ProtobufMessage.js.map
./@aws/glide-for-redis-linux-arm64/build-ts/src/RedisClient.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/src/RedisClient.js
./@aws/glide-for-redis-linux-arm64/build-ts/src/RedisClient.js.map
./@aws/glide-for-redis-linux-arm64/build-ts/src/RedisClusterClient.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/src/RedisClusterClient.js
./@aws/glide-for-redis-linux-arm64/build-ts/src/RedisClusterClient.js.map
./@aws/glide-for-redis-linux-arm64/build-ts/src/Transaction.d.ts
./@aws/glide-for-redis-linux-arm64/build-ts/src/Transaction.js
./@aws/glide-for-redis-linux-arm64/build-ts/src/Transaction.js.map
./@aws/glide-for-redis-linux-arm64/index.ts
./@aws/glide-for-redis-linux-arm64/node_modules/glide-rs/glide-rs.linux-arm64-gnu.node
./@aws/glide-for-redis-linux-arm64/node_modules/glide-rs/index.d.ts
./@aws/glide-for-redis-linux-arm64/node_modules/glide-rs/index.js
./@aws/glide-for-redis-linux-arm64/node_modules/glide-rs/package.json
./@aws/glide-for-redis-linux-arm64/npm/glide/index.ts
./@aws/glide-for-redis-linux-arm64/npm/glide/package.json
./@aws/glide-for-redis-linux-arm64/npm/glide/tsconfig.json
./@aws/glide-for-redis-linux-arm64/package.json
./@aws/glide-for-redis-linux-arm64/package.json.tmpl
./@aws/glide-for-redis-linux-arm64/tsconfig.json
./@aws/glide-for-redis/README.md
./@aws/glide-for-redis/build-ts/index.d.ts
./@aws/glide-for-redis/build-ts/index.js
./@aws/glide-for-redis/build-ts/src/BaseClient.d.ts
./@aws/glide-for-redis/build-ts/src/Commands.d.ts
./@aws/glide-for-redis/build-ts/src/Errors.d.ts
./@aws/glide-for-redis/build-ts/src/Logger.d.ts
./@aws/glide-for-redis/build-ts/src/ProtobufMessage.d.ts
./@aws/glide-for-redis/build-ts/src/RedisClient.d.ts
./@aws/glide-for-redis/build-ts/src/RedisClusterClient.d.ts
./@aws/glide-for-redis/build-ts/src/Transaction.d.ts
./@aws/glide-for-redis/package.json
./@protobufjs/aspromise/LICENSE
./@protobufjs/aspromise/README.md
./@protobufjs/aspromise/index.d.ts
./@protobufjs/aspromise/index.js
./@protobufjs/aspromise/package.json
./@protobufjs/aspromise/tests/index.js
./@protobufjs/base64/LICENSE
./@protobufjs/base64/README.md
./@protobufjs/base64/index.d.ts
./@protobufjs/base64/index.js
./@protobufjs/base64/package.json
./@protobufjs/base64/tests/index.js
./@protobufjs/codegen/LICENSE
./@protobufjs/codegen/README.md
./@protobufjs/codegen/index.d.ts
./@protobufjs/codegen/index.js
./@protobufjs/codegen/package.json
./@protobufjs/codegen/tests/index.js
./@protobufjs/eventemitter/LICENSE
./@protobufjs/eventemitter/README.md
./@protobufjs/eventemitter/index.d.ts
./@protobufjs/eventemitter/index.js
./@protobufjs/eventemitter/package.json
./@protobufjs/eventemitter/tests/index.js
./@protobufjs/fetch/LICENSE
./@protobufjs/fetch/README.md
./@protobufjs/fetch/index.d.ts
./@protobufjs/fetch/index.js
./@protobufjs/fetch/package.json
./@protobufjs/fetch/tests/index.js
./@protobufjs/float/LICENSE
./@protobufjs/float/README.md
./@protobufjs/float/bench/index.js
./@protobufjs/float/bench/suite.js
./@protobufjs/float/index.d.ts
./@protobufjs/float/index.js
./@protobufjs/float/package.json
./@protobufjs/float/tests/index.js
./@protobufjs/inquire/.npmignore
./@protobufjs/inquire/LICENSE
./@protobufjs/inquire/README.md
./@protobufjs/inquire/index.d.ts
./@protobufjs/inquire/index.js
./@protobufjs/inquire/package.json
./@protobufjs/inquire/tests/data/array.js
./@protobufjs/inquire/tests/data/emptyArray.js
./@protobufjs/inquire/tests/data/emptyObject.js
./@protobufjs/inquire/tests/data/object.js
./@protobufjs/inquire/tests/index.js
./@protobufjs/path/LICENSE
./@protobufjs/path/README.md
./@protobufjs/path/index.d.ts
./@protobufjs/path/index.js
./@protobufjs/path/package.json
./@protobufjs/path/tests/index.js
./@protobufjs/pool/.npmignore
./@protobufjs/pool/LICENSE
./@protobufjs/pool/README.md
./@protobufjs/pool/index.d.ts
./@protobufjs/pool/index.js
./@protobufjs/pool/package.json
./@protobufjs/pool/tests/index.js
./@protobufjs/utf8/.npmignore
./@protobufjs/utf8/LICENSE
./@protobufjs/utf8/README.md
./@protobufjs/utf8/index.d.ts
./@protobufjs/utf8/index.js
./@protobufjs/utf8/package.json
./@protobufjs/utf8/tests/data/utf8.txt
./@protobufjs/utf8/tests/index.js
./@types/node/LICENSE
./@types/node/README.md
./@types/node/assert.d.ts
./@types/node/assert/strict.d.ts
./@types/node/async_hooks.d.ts
./@types/node/buffer.d.ts
./@types/node/child_process.d.ts
./@types/node/cluster.d.ts
./@types/node/console.d.ts
./@types/node/constants.d.ts
./@types/node/crypto.d.ts
./@types/node/dgram.d.ts
./@types/node/diagnostics_channel.d.ts
./@types/node/dns.d.ts
./@types/node/dns/promises.d.ts
./@types/node/dom-events.d.ts
./@types/node/domain.d.ts
./@types/node/events.d.ts
./@types/node/fs.d.ts
./@types/node/fs/promises.d.ts
./@types/node/globals.d.ts
./@types/node/globals.global.d.ts
./@types/node/http.d.ts
./@types/node/http2.d.ts
./@types/node/https.d.ts
./@types/node/index.d.ts
./@types/node/inspector.d.ts
./@types/node/module.d.ts
./@types/node/net.d.ts
./@types/node/os.d.ts
./@types/node/package.json
./@types/node/path.d.ts
./@types/node/perf_hooks.d.ts
./@types/node/process.d.ts
./@types/node/punycode.d.ts
./@types/node/querystring.d.ts
./@types/node/readline.d.ts
./@types/node/readline/promises.d.ts
./@types/node/repl.d.ts
./@types/node/stream.d.ts
./@types/node/stream/consumers.d.ts
./@types/node/stream/promises.d.ts
./@types/node/stream/web.d.ts
./@types/node/string_decoder.d.ts
./@types/node/test.d.ts
./@types/node/timers.d.ts
./@types/node/timers/promises.d.ts
./@types/node/tls.d.ts
./@types/node/trace_events.d.ts
./@types/node/tty.d.ts
./@types/node/url.d.ts
./@types/node/util.d.ts
./@types/node/v8.d.ts
./@types/node/vm.d.ts
./@types/node/wasi.d.ts
./@types/node/worker_threads.d.ts
./@types/node/zlib.d.ts
./long/LICENSE
./long/README.md
./long/index.d.ts
./long/index.js
./long/package.json
./long/umd/index.d.ts
./long/umd/index.js
./long/umd/package.json
./minimist/.eslintrc
./minimist/.github/FUNDING.yml
./minimist/.nycrc
./minimist/CHANGELOG.md
./minimist/LICENSE
./minimist/README.md
./minimist/example/parse.js
./minimist/index.js
./minimist/package.json
./minimist/test/all_bool.js
./minimist/test/bool.js
./minimist/test/dash.js
./minimist/test/default_bool.js
./minimist/test/dotted.js
./minimist/test/kv_short.js
./minimist/test/long.js
./minimist/test/num.js
./minimist/test/parse.js
./minimist/test/parse_modified.js
./minimist/test/proto.js
./minimist/test/short.js
./minimist/test/stop_early.js
./minimist/test/unknown.js
./minimist/test/whitespace.js
./npmignore/.editorconfig
./npmignore/.eslintrc
./npmignore/.github/FUNDING.yml
./npmignore/.nycrc
./npmignore/CHANGELOG.md
./npmignore/LICENSE
./npmignore/README.md
./npmignore/bin/npmignore
./npmignore/index.js
./npmignore/package.json
./npmignore/test/index.js
./prettier/LICENSE
./prettier/README.md
./prettier/bin/prettier.cjs
./prettier/doc.d.ts
./prettier/doc.js
./prettier/doc.mjs
./prettier/index.cjs
./prettier/index.d.ts
./prettier/index.mjs
./prettier/internal/cli.mjs
./prettier/package.json
./prettier/plugins/acorn.d.ts
./prettier/plugins/acorn.js
./prettier/plugins/acorn.mjs
./prettier/plugins/angular.d.ts
./prettier/plugins/angular.js
./prettier/plugins/angular.mjs
./prettier/plugins/babel.d.ts
./prettier/plugins/babel.js
./prettier/plugins/babel.mjs
./prettier/plugins/estree.d.ts
./prettier/plugins/estree.js
./prettier/plugins/estree.mjs
./prettier/plugins/flow.d.ts
./prettier/plugins/flow.js
./prettier/plugins/flow.mjs
./prettier/plugins/glimmer.d.ts
./prettier/plugins/glimmer.js
./prettier/plugins/glimmer.mjs
./prettier/plugins/graphql.d.ts
./prettier/plugins/graphql.js
./prettier/plugins/graphql.mjs
./prettier/plugins/html.d.ts
./prettier/plugins/html.js
./prettier/plugins/html.mjs
./prettier/plugins/markdown.d.ts
./prettier/plugins/markdown.js
./prettier/plugins/markdown.mjs
./prettier/plugins/meriyah.d.ts
./prettier/plugins/meriyah.js
./prettier/plugins/meriyah.mjs
./prettier/plugins/postcss.d.ts
./prettier/plugins/postcss.js
./prettier/plugins/postcss.mjs
./prettier/plugins/typescript.d.ts
./prettier/plugins/typescript.js
./prettier/plugins/typescript.mjs
./prettier/plugins/yaml.d.ts
./prettier/plugins/yaml.js
./prettier/plugins/yaml.mjs
./prettier/standalone.d.ts
./prettier/standalone.js
./prettier/standalone.mjs
./protobufjs/LICENSE
./protobufjs/README.md
./protobufjs/dist/light/protobuf.js
./protobufjs/dist/light/protobuf.js.map
./protobufjs/dist/light/protobuf.min.js
./protobufjs/dist/light/protobuf.min.js.map
./protobufjs/dist/minimal/protobuf.js
./protobufjs/dist/minimal/protobuf.js.map
./protobufjs/dist/minimal/protobuf.min.js
./protobufjs/dist/minimal/protobuf.min.js.map
./protobufjs/dist/protobuf.js
./protobufjs/dist/protobuf.js.map
./protobufjs/dist/protobuf.min.js
./protobufjs/dist/protobuf.min.js.map
./protobufjs/ext/debug/README.md
./protobufjs/ext/debug/index.js
./protobufjs/ext/descriptor/README.md
./protobufjs/ext/descriptor/index.d.ts
./protobufjs/ext/descriptor/index.js
./protobufjs/ext/descriptor/test.js
./protobufjs/google/LICENSE
./protobufjs/google/README.md
./protobufjs/google/api/annotations.json
./protobufjs/google/api/annotations.proto
./protobufjs/google/api/http.json
./protobufjs/google/api/http.proto
./protobufjs/google/protobuf/api.json
./protobufjs/google/protobuf/api.proto
./protobufjs/google/protobuf/descriptor.json
./protobufjs/google/protobuf/descriptor.proto
./protobufjs/google/protobuf/source_context.json
./protobufjs/google/protobuf/source_context.proto
./protobufjs/google/protobuf/type.json
./protobufjs/google/protobuf/type.proto
./protobufjs/index.d.ts
./protobufjs/index.js
./protobufjs/light.d.ts
./protobufjs/light.js
./protobufjs/minimal.d.ts
./protobufjs/minimal.js
./protobufjs/package.json
./protobufjs/scripts/postinstall.js
./protobufjs/src/common.js
./protobufjs/src/converter.js
./protobufjs/src/decoder.js
./protobufjs/src/encoder.js
./protobufjs/src/enum.js
./protobufjs/src/field.js
./protobufjs/src/index-light.js
./protobufjs/src/index-minimal.js
./protobufjs/src/index.js
./protobufjs/src/mapfield.js
./protobufjs/src/message.js
./protobufjs/src/method.js
./protobufjs/src/namespace.js
./protobufjs/src/object.js
./protobufjs/src/oneof.js
./protobufjs/src/parse.js
./protobufjs/src/reader.js
./protobufjs/src/reader_buffer.js
./protobufjs/src/root.js
./protobufjs/src/roots.js
./protobufjs/src/rpc.js
./protobufjs/src/rpc/service.js
./protobufjs/src/service.js
./protobufjs/src/tokenize.js
./protobufjs/src/type.js
./protobufjs/src/types.js
./protobufjs/src/typescript.jsdoc
./protobufjs/src/util.js
./protobufjs/src/util/longbits.js
./protobufjs/src/util/minimal.js
./protobufjs/src/verifier.js
./protobufjs/src/wrappers.js
./protobufjs/src/writer.js
./protobufjs/src/writer_buffer.js
./protobufjs/tsconfig.json
./typescript/LICENSE.txt
./typescript/README.md
./typescript/SECURITY.md
./typescript/ThirdPartyNoticeText.txt
./typescript/bin/tsc
./typescript/bin/tsserver
./typescript/lib/cancellationToken.js
./typescript/lib/cs/diagnosticMessages.generated.json
./typescript/lib/de/diagnosticMessages.generated.json
./typescript/lib/es/diagnosticMessages.generated.json
./typescript/lib/fr/diagnosticMessages.generated.json
./typescript/lib/it/diagnosticMessages.generated.json
./typescript/lib/ja/diagnosticMessages.generated.json
./typescript/lib/ko/diagnosticMessages.generated.json
./typescript/lib/lib.d.ts
./typescript/lib/lib.decorators.d.ts
./typescript/lib/lib.decorators.legacy.d.ts
./typescript/lib/lib.dom.asynciterable.d.ts
./typescript/lib/lib.dom.d.ts
./typescript/lib/lib.dom.iterable.d.ts
./typescript/lib/lib.es2015.collection.d.ts
./typescript/lib/lib.es2015.core.d.ts
./typescript/lib/lib.es2015.d.ts
./typescript/lib/lib.es2015.generator.d.ts
./typescript/lib/lib.es2015.iterable.d.ts
./typescript/lib/lib.es2015.promise.d.ts
./typescript/lib/lib.es2015.proxy.d.ts
./typescript/lib/lib.es2015.reflect.d.ts
./typescript/lib/lib.es2015.symbol.d.ts
./typescript/lib/lib.es2015.symbol.wellknown.d.ts
./typescript/lib/lib.es2016.array.include.d.ts
./typescript/lib/lib.es2016.d.ts
./typescript/lib/lib.es2016.full.d.ts
./typescript/lib/lib.es2016.intl.d.ts
./typescript/lib/lib.es2017.d.ts
./typescript/lib/lib.es2017.date.d.ts
./typescript/lib/lib.es2017.full.d.ts
./typescript/lib/lib.es2017.intl.d.ts
./typescript/lib/lib.es2017.object.d.ts
./typescript/lib/lib.es2017.sharedmemory.d.ts
./typescript/lib/lib.es2017.string.d.ts
./typescript/lib/lib.es2017.typedarrays.d.ts
./typescript/lib/lib.es2018.asyncgenerator.d.ts
./typescript/lib/lib.es2018.asynciterable.d.ts
./typescript/lib/lib.es2018.d.ts
./typescript/lib/lib.es2018.full.d.ts
./typescript/lib/lib.es2018.intl.d.ts
./typescript/lib/lib.es2018.promise.d.ts
./typescript/lib/lib.es2018.regexp.d.ts
./typescript/lib/lib.es2019.array.d.ts
./typescript/lib/lib.es2019.d.ts
./typescript/lib/lib.es2019.full.d.ts
./typescript/lib/lib.es2019.intl.d.ts
./typescript/lib/lib.es2019.object.d.ts
./typescript/lib/lib.es2019.string.d.ts
./typescript/lib/lib.es2019.symbol.d.ts
./typescript/lib/lib.es2020.bigint.d.ts
./typescript/lib/lib.es2020.d.ts
./typescript/lib/lib.es2020.date.d.ts
./typescript/lib/lib.es2020.full.d.ts
./typescript/lib/lib.es2020.intl.d.ts
./typescript/lib/lib.es2020.number.d.ts
./typescript/lib/lib.es2020.promise.d.ts
./typescript/lib/lib.es2020.sharedmemory.d.ts
./typescript/lib/lib.es2020.string.d.ts
./typescript/lib/lib.es2020.symbol.wellknown.d.ts
./typescript/lib/lib.es2021.d.ts
./typescript/lib/lib.es2021.full.d.ts
./typescript/lib/lib.es2021.intl.d.ts
./typescript/lib/lib.es2021.promise.d.ts
./typescript/lib/lib.es2021.string.d.ts
./typescript/lib/lib.es2021.weakref.d.ts
./typescript/lib/lib.es2022.array.d.ts
./typescript/lib/lib.es2022.d.ts
./typescript/lib/lib.es2022.error.d.ts
./typescript/lib/lib.es2022.full.d.ts
./typescript/lib/lib.es2022.intl.d.ts
./typescript/lib/lib.es2022.object.d.ts
./typescript/lib/lib.es2022.regexp.d.ts
./typescript/lib/lib.es2022.sharedmemory.d.ts
./typescript/lib/lib.es2022.string.d.ts
./typescript/lib/lib.es2023.array.d.ts
./typescript/lib/lib.es2023.collection.d.ts
./typescript/lib/lib.es2023.d.ts
./typescript/lib/lib.es2023.full.d.ts
./typescript/lib/lib.es5.d.ts
./typescript/lib/lib.es6.d.ts
./typescript/lib/lib.esnext.collection.d.ts
./typescript/lib/lib.esnext.d.ts
./typescript/lib/lib.esnext.decorators.d.ts
./typescript/lib/lib.esnext.disposable.d.ts
./typescript/lib/lib.esnext.full.d.ts
./typescript/lib/lib.esnext.intl.d.ts
./typescript/lib/lib.esnext.object.d.ts
./typescript/lib/lib.esnext.promise.d.ts
./typescript/lib/lib.scripthost.d.ts
./typescript/lib/lib.webworker.asynciterable.d.ts
./typescript/lib/lib.webworker.d.ts
./typescript/lib/lib.webworker.importscripts.d.ts
./typescript/lib/lib.webworker.iterable.d.ts
./typescript/lib/pl/diagnosticMessages.generated.json
./typescript/lib/pt-br/diagnosticMessages.generated.json
./typescript/lib/ru/diagnosticMessages.generated.json
./typescript/lib/tr/diagnosticMessages.generated.json
./typescript/lib/tsc.js
./typescript/lib/tsserver.js
./typescript/lib/tsserverlibrary.d.ts
./typescript/lib/tsserverlibrary.js
./typescript/lib/typesMap.json
./typescript/lib/typescript.d.ts
./typescript/lib/typescript.js
./typescript/lib/typingsInstaller.js
./typescript/lib/watchGuard.js
./typescript/lib/zh-cn/diagnosticMessages.generated.json
./typescript/lib/zh-tw/diagnosticMessages.generated.json
./typescript/package.json
./undici-types/README.md
./undici-types/agent.d.ts
./undici-types/api.d.ts
./undici-types/balanced-pool.d.ts
./undici-types/cache.d.ts
./undici-types/client.d.ts
./undici-types/connector.d.ts
./undici-types/content-type.d.ts
./undici-types/cookies.d.ts
./undici-types/diagnostics-channel.d.ts
./undici-types/dispatcher.d.ts
./undici-types/errors.d.ts
./undici-types/fetch.d.ts
./undici-types/file.d.ts
./undici-types/filereader.d.ts
./undici-types/formdata.d.ts
./undici-types/global-dispatcher.d.ts
./undici-types/global-origin.d.ts
./undici-types/handlers.d.ts
./undici-types/header.d.ts
./undici-types/index.d.ts
./undici-types/interceptors.d.ts
./undici-types/mock-agent.d.ts
./undici-types/mock-client.d.ts
./undici-types/mock-errors.d.ts
./undici-types/mock-interceptor.d.ts
./undici-types/mock-pool.d.ts
./undici-types/package.json
./undici-types/patch.d.ts
./undici-types/pool-stats.d.ts
./undici-types/pool.d.ts
./undici-types/proxy-agent.d.ts
./undici-types/readable.d.ts
./undici-types/webidl.d.ts
./undici-types/websocket.d.ts
@Elen-Ghulam , as discussed please estimate the effort and provide ETA.
Thank you @ofirsnb for creating the docker demo.
Next steps: Since the musl library isn't supported yet in npm, we'll have to try and build the library from parts. We'll try and build an alpine docker image with rust and node to build it with.
Thank you very much for your response, @acarbonetto .
That sounds good, thanks!
Took me a while to understand how the build process works here (using napi
), so yeah what you've said was exactly my thought too,
Let me know if I can be at your further assistance, thanks!
We're making some progress here:
Found out we need to install bash
and gettext
to get further down the build process
We also found that the container image we're using is supporting an x64
architecture, as opposed to the one we need which is arm64
. We're digging into this issue, since when we pull the Alpine image straight from Docker, we do get an arm64
architecture, but the one in GitHub is x64
Turns out the arm64
is not natively supported by GitHub
We are delving into some other GitHub Actions that may enable us to emulate this architecture and get a stable build.
Currently, we're trying this action: https://github.com/marketplace/actions/run-on-architecture to see if we can build a successful arm64
artifact