9 ms·
They are also Docker Compose, which is frankly one of the nicest pieces of software I’ve used in a long time.
by airza 3y ago
They are also Docker Compose, which is frankly one of the nicest pieces of software I’ve used in a long time.
- supercanuck 3y agoDocker Compose is contained in Docker Desktop.
- paradox460 3y agoIt can be run independently. I'm using colima, docker, and docker compose, and it just works
- bg24 3y agoYes. And if you really needed to scale beyond 1 node, enable swarm mode.
- apozem 3y agoLove Docker Compose. At an old job, we used it to provide every developer with a local version of the frontend, backend and database, all in separate containers that only talked to each other. All of that with one command!
- salawat 3y ago...that none of them could figure out how to debug. >t. The guy who gets endlessly tired of having to unfsck the layers of abstraction into something mere mortal devs/testers can reason through about.
- giobox 3y agoPeople have been making this facetious argument since Docker launched a decade ago, it's even more ridiculous to make it now. My job would very literally be harder and take much longer to accomplish things without the benefits of containers. Anyone who still feels this way about containers for software dev today needs to get off their grumpy stool and embrace the benefits.
- gnulinux 3y agoThis is the current setup I have at my current day job and it's pretty awesome. Wouldn't change it for anything else.
- dharmab 3y agoI've been use interactive debuggers with Docker since 2017. It's quite easy.
- airza 3y agoFunnily enough I chose docker compose because it was such an easy abstraction. I tell it i want a bunch of containers and specify their network relationship in a simple flat file. I tell it that I want each of them to expose their debugger port on a different local port, then I can just hook up a normal debugger and go. Couldn't be easier!
- jayd16 3y agoI had a similar set up and it made debugging really easy. Instead of building and running every app you could just run the full environment with known good images and replace the app you're working on with the debuggable instance running in the IDE. These days you can even build, and deploy a debuggable image from an IDE easily so you don't need to bridge the network.
- c-hendricks 3y agoAgreed, I could probably take or leave Docker, it's the compose file I care about.
- malablaster 3y agoHow do you keep docker compose and leave the rest? Unless you’re talking about Docker alternatives.
- seanw444 3y agoYeah I think they meant if Compose worked with any other Docker equivalent, they wouldn't care specifically for Docker itself.
- c-hendricks 3y agoConfirmed, this is what I was getting at. Containers + simple compose file for orchestration.
- fuomag9 3y agoYou can use docker compose with a podman backend if you expose the podman socket! https://www.redhat.com/sysadmin/podman-docker-compose https://www.redhat.com/sysadmin/podman-docker-compose
- XorNot 3y agoThis kind of works - I've had problems getting compose to shutdown properly when run like this. That said, it does work great - it even works with user namespaces, which makes it very powerful!
- Ajedi32 3y agoDocker feels incomplete without Compose. Dockerfiles on their own are usually missing a lot of critical information about how to run the container in practice (volumes, environment variables, network dependencies, ports to forward, etc). With plain Docker you usually have to read a bunch of documentation to figure all that out; with Compose all that information is in the file and you can just run `docker compose up`.
- msm_ 3y agoDockerfiles are more versatile. For example Kubernetes also uses Docker images (thanks to the OCI specification), but you don't configure Kubernetes with docker-compose.yml files, and Kubernetes usually doesn't even use Docker under the hood. But sure, for local deployment docker-compose is awesome.
- giobox 3y ago> Dockerfiles are more versatile Not sure I follow? Docker Compose in no way trys to replace a Dockerfile or docker images - every container you specify in one still has the exact same Dockerfile, compose can't replace this. I also think Compose is a fantastic tool, but to start comparing to Dockerfiles and Kubernetes suggests not understanding what Compose is for. The thing Compose does better than a bunch of loose dockerfiles especially is document in a runnable fashion the relationships between key containers in a given stack. This information alone can tell you a lot about how you would deploy in more complex environments, as well as giving you something you can usually deploy instantly with a docker compose up for local development work. Without compose, you typically have to rely on loose documentation much more, which may be stale or outdated and obviously isn't "runnable" like docker compose is. I also find it far easier to understand what volumes are critical for persistence when its coded in the Compose yaml, vs a bunch of -v args in the documentation for a docker run command launch.
- wdfx 3y agoI don't think that's really a docker problem. Its more about the instances of software that you want to run together. e.g. nginx in isolation is useless. But is really useful when you want to expose a bunch of other services on a single http(s) interface. When you are working at the compose level you are thinking about an ecosystem of services working together and of course then you are you using the compose tools to achieve that. But managing each component in isolation is much more tedious.
- toastercat 3y agoI'm an odd one out -- I actually don't like Compose and it may partly have to do with my dislike for YAML. I often have a hard time finding or understanding the docker-compose equivalent of a docker CLI command or flag. I've taken to replacing docker compose files with bash scripts for my personal projects. So far, it's been OK.
- zelphirkalt 3y agoI share the same feeling about compose. I used to put things in Makefiles, to also have the dependencies of containers of other containers. But I have not yet found a good way to replace `docker compose up' functionality, in case the containers are already running. It does some magic to only replace the containers that need replacing and keeps things running. If anyone has good ideas, please share!
- paradox460 3y agoCheck out earthfiles and earthly. It's kind of a fusion between dockerfiles and makefiles
- mieubrisse 3y agoYou might be interested in what we're building at Kurtosis: you define your app in a deterministic subset of Python, and then we do the magic to change only what's necessary on subsequent runs (what we call "idempotent runs"). It also supports parameterization. Setting up an N-node Cassandra cluster: https://docs.kurtosis.com/how-to-parameterize-cassandra#instantiate-a-3-node-cassandra-cluster https://docs.kurtosis.com/how-to-parameterize-cassandra#inst... Idempotent runs documentation: https://docs.kurtosis.com/concepts-reference/idempotent-runs https://docs.kurtosis.com/concepts-reference/idempotent-runs
- dugite-code 3y ago> I often have a hard time finding or understanding the docker-compose equivalent of a docker CLI command or flag. This site might help: https://www.composerize.com/ https://www.composerize.com/ Also you can also run that site in docker.