docker-compose, new container version and logs persistence
Quite common use-case with docker-compose:
- A application’s code pulled from a repository using git.
- A docker-compose.yml looking like this:
When I want to deploy a new version I just pull the latest version of my code then make a
docker-compose up --build -d.
Works almost perfectly except each time I make an update it erases my past logs accessible using
docker-compose logs. I understand why docker behaves that way (even if docker-compose recreates a container with the same name it’s still a brand new container, so it’s quite logical logs get flushed). Still, it’s really not practical.
Any one has a solution for that ? Preferably one that does not involve modifying images or using volumes to store logs. (Because that should be the whole point of docker logs, not having to worry about that).
2 Solutions collect form web for “docker-compose, new container version and logs persistence”
You could redirect the output to a log file when starting the containers, something like:
docker-compose up --build --no-color --force-recreate &> logs &
docker-compose logs you could
tail logs anytime you want.
I think your best bet is to use one of the Logging Driver options described on the Docker docs:
If this isn’t a workable solution, can you give me a little more context for your goals and obstacles?