Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node-Alpine: Initialization Failed #1205

Closed
ofirsnb opened this issue Apr 1, 2024 · 8 comments · Fixed by #1379
Closed

Node-Alpine: Initialization Failed #1205

ofirsnb opened this issue Apr 1, 2024 · 8 comments · Fixed by #1379
Assignees
Labels
bug Something isn't working node
Milestone

Comments

@ofirsnb
Copy link

ofirsnb commented Apr 1, 2024

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 ofirsnb added the bug Something isn't working label Apr 1, 2024
@avifenesh
Copy link
Contributor

@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?

@avifenesh avifenesh added this to the GA milestone Apr 1, 2024
@ofirsnb
Copy link
Author

ofirsnb commented Apr 1, 2024

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

@asafpamzn
Copy link
Contributor

@Elen-Ghulam , as discussed please estimate the effort and provide ETA.

@acarbonetto
Copy link
Collaborator

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.

@ofirsnb
Copy link
Author

ofirsnb commented Apr 10, 2024

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!

@ofirsnb
Copy link
Author

ofirsnb commented Apr 10, 2024

I managed to compile a working musl binary!
Pushed the compiled binary to the demo above, as a POC showing it works. (commit - note that the Docker build copies the binary into the node_modules, for the POC purpose).

Opened a PR with the changes in order to compile a musl binary.
#1267

@alex-arzola-imp
Copy link
Contributor

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

@alex-arzola-imp
Copy link
Contributor

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

@avifenesh avifenesh linked a pull request May 9, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working node
Projects
None yet
7 participants