mirror of https://github.com/docker/compose.git
Merge pull request #1388 from vdemeester/1303-log-driver-support
Add support for log-driver as a docker-compose.yml option
This commit is contained in:
commit
0f2f9db6d8
|
@ -24,6 +24,7 @@ DOCKER_CONFIG_KEYS = [
|
|||
'links',
|
||||
'mem_limit',
|
||||
'net',
|
||||
'log_driver',
|
||||
'pid',
|
||||
'ports',
|
||||
'privileged',
|
||||
|
|
|
@ -83,6 +83,10 @@ class Container(object):
|
|||
def labels(self):
|
||||
return self.get('Config.Labels') or {}
|
||||
|
||||
@property
|
||||
def log_config(self):
|
||||
return self.get('HostConfig.LogConfig') or None
|
||||
|
||||
@property
|
||||
def human_readable_state(self):
|
||||
if self.is_running:
|
||||
|
|
|
@ -8,7 +8,7 @@ import sys
|
|||
import six
|
||||
|
||||
from docker.errors import APIError
|
||||
from docker.utils import create_host_config
|
||||
from docker.utils import create_host_config, LogConfig
|
||||
|
||||
from .config import DOCKER_CONFIG_KEYS
|
||||
from .container import Container, get_container_name
|
||||
|
@ -26,6 +26,7 @@ DOCKER_START_KEYS = [
|
|||
'extra_hosts',
|
||||
'read_only',
|
||||
'net',
|
||||
'log_driver',
|
||||
'pid',
|
||||
'privileged',
|
||||
'restart',
|
||||
|
@ -430,6 +431,7 @@ class Service(object):
|
|||
privileged = options.get('privileged', False)
|
||||
cap_add = options.get('cap_add', None)
|
||||
cap_drop = options.get('cap_drop', None)
|
||||
log_config = LogConfig(type=options.get('log_driver', 'json-file'))
|
||||
pid = options.get('pid', None)
|
||||
|
||||
dns = options.get('dns', None)
|
||||
|
@ -457,6 +459,7 @@ class Service(object):
|
|||
restart_policy=restart,
|
||||
cap_add=cap_add,
|
||||
cap_drop=cap_drop,
|
||||
log_config=log_config,
|
||||
extra_hosts=extra_hosts,
|
||||
read_only=read_only,
|
||||
pid_mode=pid
|
||||
|
|
14
docs/yml.md
14
docs/yml.md
|
@ -271,6 +271,20 @@ labels:
|
|||
- "com.example.label-with-empty-value"
|
||||
```
|
||||
|
||||
### log driver
|
||||
|
||||
Specify a logging driver for the service's containers, as with the ``--log-driver`` option for docker run ([documented here](http://docs.docker.com/reference/run/#logging-drivers-log-driver)).
|
||||
|
||||
Allowed values are currently ``json-file``, ``syslog`` and ``none``. The list will change over time as more drivers are added to the Docker engine.
|
||||
|
||||
The default value is json-file.
|
||||
|
||||
```
|
||||
log_driver: "json-file"
|
||||
log_driver: "syslog"
|
||||
log_driver: "none"
|
||||
```
|
||||
|
||||
### net
|
||||
|
||||
Networking mode. Use the same values as the docker client `--net` parameter.
|
||||
|
|
|
@ -656,3 +656,21 @@ class ServiceTest(DockerClientTestCase):
|
|||
labels = create_and_start_container(service).labels.items()
|
||||
for name in labels_list:
|
||||
self.assertIn((name, ''), labels)
|
||||
|
||||
def test_log_drive_invalid(self):
|
||||
service = self.create_service('web', log_driver='xxx')
|
||||
self.assertRaises(ValueError, lambda: create_and_start_container(service))
|
||||
|
||||
def test_log_drive_empty_default_jsonfile(self):
|
||||
service = self.create_service('web')
|
||||
log_config = create_and_start_container(service).log_config
|
||||
|
||||
self.assertEqual('json-file', log_config['Type'])
|
||||
self.assertFalse(log_config['Config'])
|
||||
|
||||
def test_log_drive_none(self):
|
||||
service = self.create_service('web', log_driver='none')
|
||||
log_config = create_and_start_container(service).log_config
|
||||
|
||||
self.assertEqual('none', log_config['Type'])
|
||||
self.assertFalse(log_config['Config'])
|
||||
|
|
Loading…
Reference in New Issue