docker-compose,新的容器版本和日志持久性

docker-compose常见的用例:

  • 使用git从存储库中提取应用程序的代码。
  • docker-compose.yml看起来像这样:

version: '2' services: web: build: ./myapp

当我想部署一个新版本时,我只需要取得我的代码的最新版本,然后build立一个docker-compose up --build -d

几乎完美的作品,除了每次我做一个更新它擦除我的过去日志访问使用docker-compose logs 。 我明白为什么docker工人这样做(即使docker-compose重新创build一个具有相同名称的容器,它仍然是一个全新的容器,所以这是相当合理的日志被刷新)。 但是,这实际上并不实际。

任何人都有一个解决scheme呢? 最好涉及修改映像或使用卷来存储日志。 (因为这应该是docker日志的重点,不必担心)。

启动容器时,可以将输出redirect到日志文件,如下所示:

 docker-compose up --build --no-color --force-recreate &> logs & 

docker-compose logs而不是docker-compose logs你可以tail logs任何时候你想要的。

我认为最好的select是使用Docker文档中描述的Logging Driver选项之一: https : //docs.docker.com/engine/admin/logging/overview/

如果这不是一个可行的解决scheme,你能给我一个更多的背景来说明你的目标和障碍吗?