dockerdocker-compose

How to rebuild and update a container without downtime with docker-compose?


I enjoy a lot using docker-compose.

Eg. on my server, when I want to update my app with minor changes, I only need to git pull origin master && docker-compose restart, works perfectly.

But sometimes, I need to rebuild (eg. I added an npm dependency, need to run npm install again).

In this case, I do docker-compose build --no-cache && docker-compose restart.

I would expect this to :

But in practice it seems to restart the former one again.

Is it the expected behavior?

How can I handle a rebuild and start the new one after it is built?

Maybe I missed a specific command? Or would it make sense to have it?


Solution

  • from the manual docker-compose restart

    If you make changes to your docker-compose.yml configuration these changes will not be reflected after running this command.

    you should be able to do

    $docker-compose up -d --no-deps --build <service_name>
    

    The --no-deps will not start linked services.