FoxxMD / multi-scrobbler

Scrobble plays from multiple sources to multiple clients
https://foxxmd.github.io/multi-scrobbler
MIT License
299 stars 14 forks source link

Explore changing base docker distro #126

Closed FoxxMD closed 3 months ago

FoxxMD commented 5 months ago

Multiple issues in the past caused by DNS problems are directly related to using alpine with musl. The upcoming chromecast source also has issues with this due to musl's non-support for mDNS resolution.

LSIO has other base images that are almost as small as alpine. It's worth investigating if debian/ubuntu bases will have similar size and ease of installation as the current alpine base. Switching to one of these would mean back to glibc and saying goodbye to network/dns headaches.

FoxxMD commented 5 months ago

@Ardakilic If you'd like to test it out I now have a debian-based docker image available foxxmd/multi-scrobbler:develop-debian. It includes the fixes from 134.

Ardakilic commented 5 months ago

@FoxxMD I'll be checking in about 10 mins both with ipv6 disabled and enabled. I'll let you know.

Ardakilic commented 5 months ago

By simply altering the tag and modifying my ipv6 settings on host machine, here's my rough test:

So I can say for my case, it's fixed for both the cases with the :develop-debian tag.

@FoxxMD are you going to provide both flavors generated on pipeline, or are you going to stick and move on to Debian based image?

FoxxMD commented 5 months ago

For now I'll be building both flavors with github actions. The non-suffixed tags will stay as alpine.

For the debian image I'm encountering a showstopping bug during npm install but only for the arm64 arch. This same error does not occur for the alpine arm64 build. Because of this error the build fails so there will be *no arm64 arch versions of `-debian` tags for now.**

#17 139.5 npm verb audit error FetchError: request to https://registry.npmjs.org/-/npm/v1/security/audits/quick failed, reason: Client network socket disconnected before secure TLS connection was established
#17 139.5 npm verb audit error     at ClientRequest.<anonymous> (/usr/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:130:14)
#17 139.5 npm verb audit error     at ClientRequest.emit (node:events:517:28)
#17 139.5 npm verb audit error     at _destroy (node:_http_client:882:13)
#17 139.5 npm verb audit error     at onSocketNT (node:_http_client:902:5)
#17 139.5 npm verb audit error     at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
#17 139.5 npm verb audit error  FetchError: request to https://registry.npmjs.org/-/npm/v1/security/audits/quick failed, reason: Client network socket disconnected before secure TLS connection was established
#17 139.5 npm verb audit error     at ClientRequest.<anonymous> (/usr/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:130:14)
#17 139.5 npm verb audit error     at ClientRequest.emit (node:events:517:28)
#17 139.5 npm verb audit error     at _destroy (node:_http_client:882:13)
#17 139.5 npm verb audit error     at onSocketNT (node:_http_client:902:5)
#17 139.5 npm verb audit error     at process.processTicksAndRejections (node:internal/process/task_queues:83:21) {
#17 139.5 npm verb audit error   code: 'ECONNRESET',
#17 139.5 npm verb audit error   path: null,
#17 139.5 npm verb audit error   host: 'registry.npmjs.org',
#17 139.5 npm verb audit error   port: 443,
#17 139.5 npm verb audit error   localAddress: null,
#17 139.5 npm verb audit error   errno: 'ECONNRESET',
#17 139.5 npm verb audit error   type: 'system'
#17 139.5 npm verb audit error }

The bug is reproducible when using Github Actions from the repo, running Github Actions locally with act, and directly by trying to build the arm64 arch with buildx.

Reproducing with buildx:

git clone --branch develop https://github.com/FoxxMD/multi-scrobbler .
cd multi-scrobbler
docker buildx build -t msdebianarm --progress=plain -f debian.Dockerfile --platform=linux/arm64 --load .

All my attempted fixes are documented in debain.Dockerfile. I've tried:

The only thing I haven't tried so far is replacing the nodesource.com node/npm install method with the install method from the official docker-node dockerfile

Ardakilic commented 5 months ago

@FoxxMD 🤔

To test on arm64, could you please modify the installation line step in pipeline/dockerfile like this?

npm ci --maxsockets 1 --verbose

Decreasing the --maxsockets may help you there. 1 is rather too low (default is 15), but I'm sure it'll help you debug the issue better.

FoxxMD commented 5 months ago

Thanks for the suggestion but I'm getting the same result and the debug output is the same well.

Ardakilic commented 5 months ago

Toally weird! Usually this issue is being resolved by simply reducing the maxsockets value, however I did it and got the exact same result on exact same packages on debian/arm64 on my fork.

FoxxMD commented 5 months ago

Same result when using same method as official docker-node to install node/npm (direct binary from nodejs.com)

FoxxMD commented 4 months ago

@Ardakilic It seems upgrading the node version used in the debian docker image to the latest LTS (18 -> 20) fixed the timeout/connection issue :shrug: I've pushed an arm64 version of the debian tag. Will use this for awhile on develop to make sure its not a fluke before cutting a release for it.

Ardakilic commented 4 months ago

@FoxxMD Awesome news! I was almost positive it was a caching issue from GitHub's end.. Let me know if/when you need me to check the develop when it's ready!

FoxxMD commented 3 months ago

Closed with 0.7.0:

Ardakilic commented 3 months ago

Awesome news! I'll try on my Debian flavour on my Debian host machine, using docker this evening!

Ardakilic commented 3 months ago

@FoxxMD Tried on :latest-debian tag. So far so good! 🚀 Tried scrobbling from last.fm (through Spotify) to Maloja, worked nicely. Currently hosting it on my private Linux Debian VPS, through docker-compose.

I'll check logs if something weird occurs. Let me know if you need any further tests.

FoxxMD commented 1 week ago

Hey @Ardakilic how has the debian build been working for you? Thinking of making debian the default build.

Ardakilic commented 1 week ago

Hello @FoxxMD , Zero issues so far! Happy Debian flavour (:latest-debian) user here 😊