builder: include environment when running an exec
Some container execs have an environment, let's make sure they are included when running exec. NOTE: This is for Rocky and below as docker was the only supported method in these versions. Additionally in Rocky and below, the environment was a list and not a dictionary so we only support a list version for the environment. Closes-Bug: #1855932 Change-Id: Ic2e2c2d50f5883f7db28768ba215e74bcbf9fd8b (cherry picked from commitb5be45067a
) (cherry picked from commit0108ad789a
)
This commit is contained in:
parent
f12e6da460
commit
5fa3028d11
|
@ -220,6 +220,10 @@ class ComposeV1Builder(object):
|
|||
cmd.append('--privileged=%s' % str(cconfig['privileged']).lower())
|
||||
if 'user' in cconfig:
|
||||
cmd.append('--user=%s' % cconfig['user'])
|
||||
# TODO(sbaker): support the dict layout for this property
|
||||
for v in cconfig.get('environment', []):
|
||||
if v:
|
||||
cmd.append('--env=%s' % v)
|
||||
command = self.command_argument(cconfig.get('command'))
|
||||
# for exec, the first argument is the container name,
|
||||
# make sure the correct one is used
|
||||
|
|
|
@ -561,6 +561,7 @@ three-12345678 three''', '', 0),
|
|||
'one': {
|
||||
'command': 'ls -l /foo',
|
||||
'privileged': True,
|
||||
'environment': ['FOO=BAR'],
|
||||
'user': 'bar'
|
||||
}
|
||||
}
|
||||
|
@ -572,6 +573,7 @@ three-12345678 three''', '', 0),
|
|||
self.assertEqual(
|
||||
['docker', 'exec',
|
||||
'--privileged=true', '--user=bar',
|
||||
'--env=FOO=BAR',
|
||||
'one-12345678', '-l', '/foo'],
|
||||
cmd
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue