DEV Community

Don't just "docker-compose up"

Kostas Bariotis on August 05, 2018

Chances are that you are working on a containerized stack. Whether you built it yourself or joined a company and found one there, you are probably ...
Collapse
 
cwspear profile image
Cameron Spear • Edited

First off, don't just docker-compose up cuz that's a lot to type out. Try an alias of dc to docker-compose.

Then you can add -d: dc up -d

I almost always have a production dcoker-compose.production.yml and I will alias dcp to

docker-compose -f docker-compose.yml -f docker-compose.production.yml

Also useful to have a docker-compose.override.yml. It will automatically merge that with your default docker-compose.yml unless you use the -f flag. Very useful for dev-only config (e.g. volumes to aid in development and maybe different port mappings or debug flags, etc).

Collapse
 
moopet profile image
Ben Sinclair

I don't think docker-compose up is a lot to type, given the frequency with which you're likely to use it and the fact that it'll be in your command history a simple <ctrl-r> away if you're feeling that lazy anyway.

I'm a fan of not making aliases which shadow other commands, too - there's a good chance you have a dc on your system already, even if you don't use it.

Collapse
 
cwspear profile image
Cameron Spear

It's not just for up, but for any docker-compose command, of which, I use many many times (I do a ton of Docker development). docker-compose is a weird one for me to type, too, and I always feel like I really stutter over it.

But to each their own!

Thread Thread
 
kaelscion profile image
kaelscion

The command docker-compose always comes out docker-compsoe the first time. Try as I might, I can never type it correctly on the first go. I don't use aliases in my shell because I like to remember the commands I'm typing and the flags I use. I feel like it forces me to think through command layout, what flags actually do and helps me remember. But I totally get the frustration of what I like to call "keyboard dyslexia". And the word compose is such that I almost always type it incorrectly the first time.

Thread Thread
 
moopet profile image
Ben Sinclair

I probably type doc<tab>-c<tab> in reality. It's hard for me to test since if I just open a terminal I'll be conscious of what I'm doing, but I tab complete a lot.

Collapse
 
jrop profile image
Jonathan Apodaca

Whoa, didn't know that about "override"!

Collapse
 
leadegroot profile image
Lea de Groot

I swap between 2 different containers regularly, so I have little aliases written for aup and bup, one for each project.
For the different containers, they do:

docker-compose down
cd <a or b directory>
docker-compose up -d
docker-compose logs -f fpm

(the fpm because they are both nginx based stacks)
Works nicely and the log tails I see my containers are ready whereupon I ctrl-d and get to work :)

Of course, there is the inevitable "oh look, I have run out of memory" :( rm images, rm containers, rm volumes, restart :(

Collapse
 
kbariotis profile image
Kostas Bariotis

I tend to leave them up and running on the stacks I am working on a daily basis. If not, I will just stop them with > docker-compose stop. Thank you for your comment! 😁

Collapse
 
itsasine profile image
ItsASine (Kayla)

Something I didn't know I needed but I will use every single day from now on

Collapse
 
fahdw profile image
FahdW

You could just use Docker command to do all these commands after the container is running instead of using compose. Since it's just more verbose.