Add argument to allow limiting docker container to s specific amount of memory (#37950)

* Add argument to allow limiting docker container to s specific amount of memory

* Address review comments
This commit is contained in:
Matt Martz 2018-03-26 16:45:50 -05:00 committed by GitHub
parent 2d0547c411
commit 5d90ebb28e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 0 deletions

View file

@ -46,6 +46,7 @@ class EnvironmentConfig(CommonConfig):
self.docker_util = docker_qualify_image(args.docker_util if 'docker_util' in args else '') # type: str self.docker_util = docker_qualify_image(args.docker_util if 'docker_util' in args else '') # type: str
self.docker_pull = args.docker_pull if 'docker_pull' in args else False # type: bool self.docker_pull = args.docker_pull if 'docker_pull' in args else False # type: bool
self.docker_keep_git = args.docker_keep_git if 'docker_keep_git' in args else False # type: bool self.docker_keep_git = args.docker_keep_git if 'docker_keep_git' in args else False # type: bool
self.docker_memory = args.docker_memory if 'docker_memory' in args else None
self.tox_sitepackages = args.tox_sitepackages # type: bool self.tox_sitepackages = args.tox_sitepackages # type: bool

View file

@ -216,6 +216,12 @@ def delegate_docker(args, exclude, require):
'--privileged=%s' % str(privileged).lower(), '--privileged=%s' % str(privileged).lower(),
] ]
if args.docker_memory:
test_options.extend([
'--memory=%d' % args.docker_memory,
'--memory-swap=0',
])
docker_socket = '/var/run/docker.sock' docker_socket = '/var/run/docker.sock'
if os.path.exists(docker_socket): if os.path.exists(docker_socket):

View file

@ -605,6 +605,9 @@ def add_extra_docker_options(parser, integration=True):
action='store_true', action='store_true',
help='run docker container in privileged mode') help='run docker container in privileged mode')
docker.add_argument('--docker-memory',
help='memory limit for docker in bytes', type=int)
def complete_target(prefix, parsed_args, **_): def complete_target(prefix, parsed_args, **_):
""" """