Merge pull request #7199 from ulyssessouza/fix-exec-dotenv

Remove `None` entries on exec command
This commit is contained in:
Ulysses Souza 2020-01-31 10:47:53 +01:00 committed by GitHub
commit d9af02eddf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 1 deletions

View File

@ -1466,7 +1466,12 @@ def call_docker(args, dockeropts, environment):
args = [executable_path] + tls_options + args
log.debug(" ".join(map(pipes.quote, args)))
return subprocess.call(args, env=environment)
filtered_env = {}
for k, v in environment.items():
if v is not None:
filtered_env[k] = environment[k]
return subprocess.call(args, env=filtered_env)
def parse_scale_args(options):

View File

@ -1711,6 +1711,17 @@ services:
assert stderr == ""
assert stdout == "/\n"
@mock.patch.dict(os.environ)
def test_exec_novalue_var_dotenv_file(self):
os.environ['MYVAR'] = 'SUCCESS'
self.base_dir = 'tests/fixtures/exec-novalue-var'
self.dispatch(['up', '-d'])
assert len(self.project.containers()) == 1
stdout, stderr = self.dispatch(['exec', '-T', 'nginx', 'env'])
assert 'CHECK_VAR=SUCCESS' in stdout
assert not stderr
def test_exec_detach_long_form(self):
self.base_dir = 'tests/fixtures/links-composefile'
self.dispatch(['up', '--detach', 'console'])

View File

@ -0,0 +1,6 @@
version: '3'
services:
nginx:
image: nginx
environment:
- CHECK_VAR=${MYVAR}