ElementsProject / lightning-charge

A simple drop-in solution for accepting lightning payments
MIT License
551 stars 86 forks source link

Lightning Charge container keeps restarting in docker , ARM64 #82

Open pavlenex opened 2 years ago

pavlenex commented 2 years ago

Been having problems with lightning charged on ARM64 for quite a while now, so filing an issue as I was unable to determine why the docker container keeps restarting. Using it with BTCPay Docker.

Require stack:

- /opt/charged/node_modules/sqlite3/lib/sqlite3-binding.js

- /opt/charged/node_modules/sqlite3/lib/sqlite3.js

- /opt/charged/node_modules/knex/lib/dialects/sqlite3/index.js

- /opt/charged/node_modules/knex/lib/config-resolver.js

- /opt/charged/node_modules/knex/lib/knex.js

- /opt/charged/node_modules/knex/lib/index.js

- /opt/charged/node_modules/knex/knex.js

- /opt/charged/dist/app.js

- /opt/charged/bin/charged

    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)

    at Function.Module._load (internal/modules/cjs/loader.js:840:27)

    at Module.require (internal/modules/cjs/loader.js:1019:19)

    at require (internal/modules/cjs/helpers.js:77:18)

    at Object.<anonymous> (/opt/charged/node_modules/sqlite3/lib/sqlite3-binding.js:4:15)

    at Module._compile (internal/modules/cjs/loader.js:1133:30)

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)

    at Module.load (internal/modules/cjs/loader.js:977:32)

    at Function.Module._load (internal/modules/cjs/loader.js:877:14)

    at Module.require (internal/modules/cjs/loader.js:1019:19)

Using lightningd directory mounted in /etc/lightning... 

Starting Lightning Charge

Knex: run

$ npm install sqlite3 --save

Cannot find module '/opt/charged/node_modules/sqlite3/lib/binding/napi-v3-linux-arm64/node_sqlite3.node'

Require stack:

- /opt/charged/node_modules/sqlite3/lib/sqlite3-binding.js

- /opt/charged/node_modules/sqlite3/lib/sqlite3.js

- /opt/charged/node_modules/knex/lib/dialects/sqlite3/index.js

- /opt/charged/node_modules/knex/lib/config-resolver.js

- /opt/charged/node_modules/knex/lib/knex.js

- /opt/charged/node_modules/knex/lib/index.js

- /opt/charged/node_modules/knex/knex.js

- /opt/charged/dist/app.js

- /opt/charged/bin/charged

Error: Cannot find module '/opt/charged/node_modules/sqlite3/lib/binding/napi-v3-linux-arm64/node_sqlite3.node'

Require stack:

- /opt/charged/node_modules/sqlite3/lib/sqlite3-binding.js

- /opt/charged/node_modules/sqlite3/lib/sqlite3.js

- /opt/charged/node_modules/knex/lib/dialects/sqlite3/index.js

- /opt/charged/node_modules/knex/lib/config-resolver.js

- /opt/charged/node_modules/knex/lib/knex.js

- /opt/charged/node_modules/knex/lib/index.js

- /opt/charged/node_modules/knex/knex.js

- /opt/charged/dist/app.js

- /opt/charged/bin/charged

    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)

    at Function.Module._load (internal/modules/cjs/loader.js:840:27)

    at Module.require (internal/modules/cjs/loader.js:1019:19)

    at require (internal/modules/cjs/helpers.js:77:18)

    at Object.<anonymous> (/opt/charged/node_modules/sqlite3/lib/sqlite3-binding.js:4:15)

    at Module._compile (internal/modules/cjs/loader.js:1133:30)

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)

    at Module.load (internal/modules/cjs/loader.js:977:32)

    at Function.Module._load (internal/modules/cjs/loader.js:877:14)

    at Module.require (internal/modules/cjs/loader.js:1019:19)
ksdhans commented 2 years ago

I've been getting the same problem on a Raspberry Pi 4 system (so arm64v8). It also says: "Error: Cannot find module '/opt/charged/node_modules/sqlite3/lib/binding/napi-v3-linux-arm64/node_sqlite3.node'"

Any progress on finding a soluution?

ksdhans commented 2 years ago

It looks like the issue might be the Debian image used in the container. See here: https://github.com/docker-library/ghost/issues/157#issuecomment-429403378