Answer a question

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 :

  • create a new instance of my container
  • stop the existing container (after the newer has finished building)
  • start the new one
  • optionally remove the old one, but this could be done manually

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?

Answers

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.

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐