I feel like "docker as the preferred installation method" is a dealbreaker for me. This means that either the dependency situation is out of control, or the author just doesn't want to think about it, but either way it's a no from me...
I feel the opposite. I won't install anything except official OS packages outside Docker, if I can avoid it. Sick of polluting my filesystem with things that are hard to update, conflict with other installed packages, mess with my shell startup files, unnecessarily request root access to install, install to weird places, don't play nice with other installed packages, and on and on.
Docker is not without complications, but it alleviates far more problems than it causes. I get annoyed when something is released and doesn't have an official Dockerized version. Especially when it's a web service.
I'm a Python/Ruby/Javascript developer, and I don't want any part of those installed except on my dev machine. Unfortunately Python has infested too much of Ubuntu to avoid.
Have you given Nix a try? It's fully solved this problem for me, and it also has Dockerfile generation down great. Nothing else comes even close
What's really nice is using direnv to cd into a directory and having a flake.nix file in it which changes the entire system to what I need to do in that folder. So I don't need any of my dev environment to be system-wide, everything is per project. That alone has cut my system down to pretty much just system tools (replacements for shell commands), productivity tools (Obsidian, bitwarden, etc), and my browser. It's just so nice.
I haven't used Nix. It looks like it might be a good solution for CLIs and developer tools, but from what I know of it, it doesn't supplant Docker (or snaps or manual installation/configuration) for the kinds of things I use Docker for. Most of my personal Docker usage is for selfhosted web applications, like Nextcloud, Vaultwarden, Gitea, Drone, Wekan, Wiki.js, etc. I also now use Docker for things that I'd historically run directly on the host, like Postfix, Dovecot, Postgres, Redis, etc. I have a Proxmox VM running Docker for all my selfhosted stuff, and there's almost nothing installed outside Docker, except a few CLI clients for connecting to databases and testing things (psql, redis-cli). I run a separate VM with media servers in Docker, and another VM with my full dev environment, with Python venv, RVM, NVM, build-essential, etc. installed. Nix might be worth investigating for the dev VM, but I don't want all the selfhosted web services running outside a containerized environment (be it Docker or Kubernetes).
> What's really nice is using direnv to cd into a directory and having a flake.nix file in it which changes the entire system to what I need to do in that folder.
How cross-platform is direnv + Nix? Do flake.nix files have macOS/Linux versions?
One of the biggest advantages of using Docker images as a package format is that it's (sort of) cross-platform via Docker desktop and such on a Mac. I would prefer to use something like Nix if possible if it solves the problem a different way (being aware of platforms).
On the other hand, I will generally only try open source web apps if they have a docker image because I know that whatever the app does will be isolated to its container and if I don't like it, I can just "docker rm" and be done with it.
Beats the tar out of the obnoxious curlpipe pattern anyway.
- People who use Docker (Compose) can easily get up and running with a project in minutes
- People who dislike/don’t use Docker can at least use the Dockerfile and Docker Compose file as a reference to learn how to install the dependencies and the service itself.
I didn't realize this was a perspective. Yeah, that's true, the dependencies may be whack.
I kinda prefer docker installations because I don't need to guess what implicit "works on my machine" dependencies someone had, and the whole thing can be mostly stateless or the extra state is made pretty obvious.
But it's inside the Docker container so even if a dependency was compromised it's in a separate userspace and chrooted so unless theres a docker zero day it should be pretty secure still it seems like.
An updated Docker environment is pretty secure I think.