4 ms·
Or docker.
by jiggunjer 5y ago
Or docker.
- lillecarl 5y agoWhy is it that AppImages, snaps, flatpaks, Nix and every distro package manager is replaced by docker? Could it be that docker is missing something, maybe the Dockerfile isn't easily reproducible? Maybe the ephemeral status of all containers is quite some effort to work with? Maybe it's just not the one true answer to the question of software packaging.
- jeroenhd 5y agoIdentifying your dependencies is hard. The easy solution is not to care: develop on a machine, and ship the entire machine! That way, software with the Works On My Machine seal of approval can be pushed to production without trouble! I love Docker for the simplicity it offers, but the gigabytes of storage wasted on yet another slightly different version of Debian every time I pull a container irks me to no end. Sadly, it's the only way some software is distributed.
- piaste 5y ago> Why is it that AppImages, snaps, flatpaks, Nix and every distro package manager is replaced by docker? Where are you seeing distros using docker for containerization? If anything, I'd say Flatpak is the one you're most likely to find installed in a 2021 workstation linux. Docker's killing features are the same as they always were: usability and ecosystem. 'docker run thingamajig' is simple and DockerHub is very likely to have thingamajig in its repos. Of the ones you listed, I'd say flatpak is the only one that compares favorably to Docker on both aspects ('flatpak install thingamajig'). And since flatpak is more designed for desktop applications, it's actually the one gaining ground. Docker or other containerd-based solutions should remain the preferred choice for servers, since they're designed for that. Nix is vastly less user friendly. Snaps, last I checked, still don't have an open-source repository implementation, meaning that Canonical has absolute control over them. I don't know much about AppImage, but AFAICT it's just a file format and not a full package manager.
- codedokode 5y agoDocker (in my opinion) is a poor solution for distributing apps. It resembles a quick hack rather than a solid, scalable, future-proof solution. The problem is: you need to deploy an application with all required libraries with specific versions and build options. Obviously, a proper solution would be a package manager which would read the declarative, non-executable configuration file and install or build necessary dependencies. Another problem is that you want to run an application on differen platforms, not only Linux. Again the proper solution would be to write a cross-paltform application and install it using a cross-platform package manager. Docker doesn't offer a proper solution; instead it suggests that you create a virtual machine, install a whole operating system (without a kernel) there and then write a bash script that will download and build dependencies. As docker image configuration file is an executable script, it means that it cannot be processed with automated tools; it can only be read by a human. Also, docker requires a daemon running as a root. This increases potential attack surface. Docker is not good for desktop applications because it doesn't have portals which can restrict access to DBus, audio daemons, file system etc.
- galaxyLogic 5y agoGood points. So what is Docker good for? I think it's a good tool for creating and packaging virtual machines. No?