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
 
itsasine profile image
ItsASine (Kayla)

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

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
 
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.