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:

version: '2'
build: ./myapp

  • install docker on network drive
  • Should I use user-secrets or environment variables with docker
  • Dockerfile build volume changes not reflected on mounted local folder? (OS X / boot2Docker)
  • wso2CEP on docker - supports JMS (activemq) and other clients
  • how to communicate containers running in same machine using the host machine ip address
  • Running an docker image with cron
  • 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).

  • Scala SBT set dockerRepository “Repository for publishing is not specified”
  • sharing code between microservices
  • Docker not working after running MapReduce - AWS
  • How to deploy Dockerfile and application files to boot2docker
  • docker-compose service version error
  • How to start apache2 automatically in a ubuntu docker container?
  • 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 &

    Instead of 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?

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.