Why I don't use Docker Compose
I don’t use Docker Compose. I prefer to use plain docker
commands.
Docker Compose is another layer on top of Docker, which can break or change its
interface. Using docker
directly removes the need for it.
Parameters to a docker run
command are right there in front of you. Configuration in a “Compose file” is further away
from the user.
By putting docker run
commands in a README, parameters are right there with
the documentation for that service. With Docker Compose, the configuration is
in a file somewhere, often combining multiple repositories, further away.
Keep data close to where it’s used.
Also, the configuration for different environments are together, beside each other in subsequent commands in the documentation. Not in separate files.
Most Importantly
Having dev and prod differ by no more than command parameters is the ultimate in Dev/Prod parity.
And lastly, I just don’t want to compose services together. Why should the database server come down with my app? It’s just a service. Leave it up.