我正在使用ansible playbook在Jenkins中使用docker部署我的应用程序, 最近我想限制app容器的日志大小, 使用" docker run"有" -log-opt max-size = xxxm"选项, 但是如何在ansible playbook中添加相同的功能呢?
我试图将ansible playbook设置如下,但测试表明它不起作用。
- name: start container
docker_container:
name: "{{docker_container}}"
image: "{{docker_image}}"
log_options:
max-size: 256m
max-file: 2
volumes:
- "/etc/timezone:/etc/timezone"
- "/etc/localtime:/etc/localtime"
published_ports:
- "{{published_ports}}"
recreate: yes
我想限制大小的容器的日志文件的位置如下文所示:
/var/lib/docker/containers/2fdcae9fb35f4954639a3ff254873f0ae8518f2ede011807/2fdcae9fb35f4954639a3ff254873f0ae8518f2ede0118072304077918deb20f-json.log
首先感谢您的回复:)
答案 0 :(得分:0)
为什么不登录syslog?
你的ansible剧本看起来像这样:
- name: start container
docker_container:
name: "{{docker_container}}"
image: "{{docker_image}}"
volumes:
- "/etc/timezone:/etc/timezone"
- "/etc/localtime:/etc/localtime"
published_ports:
- "{{published_ports}}"
recreate: yes
log_driver: syslog
log_options:
tag: "{{docker_container}}"
syslog-facility: local4
你的syslog配置看起来像这样(/etc/rsyslog.d/22-docker.conf):
local4.* /var/log/docker.log
在我的情况下(Ubuntu 16.04),syslog会自动维护日志文件大小。
答案 1 :(得分:0)
我不知道你是否看到这个警告
[WARNING]: log_options is ignored when log_driver is not specified
您可以尝试设置 log_driver:json-file 如下
- name: Run docker container
docker_container:
name: "{{ docker_name }}"
image: "test/test:{{ image_tag }}"
log_driver: json-file
log_options:
max-size: 100m
recreate: yes