我有一些正在使用docker-compose运行的测试。问题在于,docker日志保存在容器中(这使调试变得复杂)。
我正在寻找一种配置docker-compose的方法,以将所有日志保存在我正在运行测试的机器上,而不是容器上。最好是docker-compose.yml文件的一些配置,但我愿意接受任何建议
最佳答案
不是docker-compose
,它可以保存您的日志并需要重新配置。它是docker
本身或您的服务,在docker内部运行,具体取决于您指的是什么日志。
如果您正在谈论docker
日志,则应引用docker log driver配置页面:
https://docs.docker.com/config/containers/logging/configure/
如果您在谈论由提供的服务生成的日志,只需将可写卷从主机PC装入容器中,然后将软件配置为登录到该文件夹。
您可以像以下代码一样实现此目的:
docker-compose.yml:
...
my-service:
image: xxx
entrypoint: ["sh", "-c", "echo 'Hello World!' > /path/inside/docker/some_log_file" ]
volumes:
- /path/on/host:/path/inside/docker
...
现在服务您应该登录
/path/inside/docker/some_log_file
。在主机上,您将在
/path/on/host
中看到所有这些文件