builder: include environment when running an exec

Some container execs have an environment, let's make sure they are
included when running exec.

Closes-Bug: #1855932
Change-Id: Ic2e2c2d50f5883f7db28768ba215e74bcbf9fd8b
(cherry picked from commit b5be45067a)
This commit is contained in:
Emilien Macchi 2019-12-10 16:42:39 -05:00 committed by Alex Schultz
parent 0f20a8eb1d
commit d9117c4796
2 changed files with 3 additions and 0 deletions

View File

@ -266,6 +266,7 @@ class BaseBuilder(object):
cmd.append('--privileged=%s' % str(cconfig['privileged']).lower())
if 'user' in cconfig:
cmd.append('--user=%s' % cconfig['user'])
self.list_or_dict_arg(cconfig, cmd, 'environment', '--env')
command = self.command_argument(cconfig.get('command'))
# for exec, the first argument is the container name,
# make sure the correct one is used

View File

@ -583,6 +583,7 @@ three-12345678 three''', '', 0),
'one': {
'command': 'ls -l /foo',
'privileged': True,
'environment': {'FOO': 'BAR'},
'user': 'bar'
}
}
@ -594,6 +595,7 @@ three-12345678 three''', '', 0),
self.assertEqual(
['docker', 'exec',
'--privileged=true', '--user=bar',
'--env=FOO=BAR',
'one-12345678', '-l', '/foo'],
cmd
)