you are viewing a single comment's thread
view the rest of the comments
[–] 32 points 1 year ago (12 children)

That can be fixed easily* with programs like beets

* = the program itself is easy to use, but installing and configuring it, requires a PhD in Linux-Arch-ology

  • source
  • hideshow 12 child comments
  • [–] 28 points 1 year ago (8 children)

    No I'm sure there will be an obscure shell script that someone wrote to do all of the install for you that will suddenly fail on a broken python dependency (because why not) and then leave your system in semi-altered state that doesnt really work wrong but its never quite right again

  • source
  • parent
  • hideshow 8 child comments
  • [–] 19 points 1 year ago (7 children)

    I 100% learnt to use docker specifically to avoid the exact situation you described.

  • source
  • parent
  • hideshow 7 child comments
  • [–] 7 points 1 year ago (6 children)

    Got any good resources for learning?

    In my (limited) experience Docker is just “run some script from a random GitHub that loads more stuff from a random GitHub… now you have a blob of code on your PC somewhere that’s unmodifiable and inaccessible unless it’s a web app in which case it’s listening on a random port with no access to any system resources”

    I assume there’s something more I need to be doing but all the learning resources just kinda assume you understood wtf it’s doing.

  • source
  • parent
  • hideshow 6 child comments
  • [–] 2 points 1 year ago (2 children)

    I tend to think of docker containers like light virtual machines.

    You can start with an image of a very simple bare operating system, or from an OS with a few things installed (in my case I have lately been using images from dockerhub under nvidia/cuda-ubuntu so that my container spins up with ubuntu and the drivers and SDK for my GPU).

    Then essentially the Dockerfile becomes the sandbox from which to test installation scripts, see what works by trial and error if necessary, to install the programs you want -- if you make a mistake or the install script fails as in the comment above, you can just kill the container and spin up a new one without the "doesn't really work wrong but its never quite right again" issue :)

    I know this does sound like 'rtfm' but I definitely have made a lot of use of the Docker manuals: https://docs.docker.com/manuals/

    These manuals, plus stack overflow searching for Dockerfile tips, and github repos for the software I want to use that sometimes do contain Dockerfiles, have been enough to get me acquainted with spinning up my own containers and installing what I need, and use docker compose to run multiple containers on a single host that can talk to each other. Beyond that, I had to search a bit harder (mostly on StackOverflow, but also a bit of tail-chasing using ChatGPT) to learn how to configure overlay networks to allow containers to talk to one another from on different servers, and using docker stack to spin up a swarm of containers as services on a cluster.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 1 year ago (1 child)

    Yeah… that all makes sense and those docks seem decent. The piece of the puzzle that’s missing for me is: how does docker turn a yaml config that says like … (from their example):

    > frontend:
    >     image: example/webapp
    >     ports:
    >       - "443:8043"
    >     networks:
    >       - front-tier
    >       - back-tier
    >     configs:
    >       - httpd-config
    >     secrets:
    >       - server-certificate
    

    … into actual operating, functioning container blobs? e.g. How does it know that “secrets: server-certificate means that it should take an ssl cert and place it in the container? How does it know where to place that certificate?

  • source
  • parent
  • hideshow 1 child comment
  • [–] 9 points 1 year ago (1 child)

    Musicbrainz Picard is a lot easier than beets, although it does require some introductory concepts to make sense (e.g. terminology like “release”, “release group”). And it makes it too easy to accidentally poison datasets in an attempt to be helpful. Harder to automate than beets, too.

    Both of them also benefit from a decent knowledge of where your files came from, not as good for a random pile of mp3s.

  • source
  • parent
  • hideshow 1 child comment