浏览代码

If an env var is passthrough but not defined on the host don't set it.
This doesn't change too much code and keeps the generators.

Signed-off-by: jrabbit <[email protected]>

jrabbit 10 年之前
父节点
当前提交
6540efb3d3
共有 1 个文件被更改,包括 9 次插入3 次删除
  1. 9 3
      compose/config/config.py

+ 9 - 3
compose/config/config.py

@@ -464,12 +464,18 @@ def resolve_environment(service_dict):
         env.update(env_vars_from_file(env_file))
         env.update(env_vars_from_file(env_file))
 
 
     env.update(parse_environment(service_dict.get('environment')))
     env.update(parse_environment(service_dict.get('environment')))
-    return dict(resolve_env_var(k, v) for k, v in six.iteritems(env))
+    d = dict(resolve_env_var(k, v) for k, v in six.iteritems(env))
+    if '_' in d.keys():
+        del d['_']
+    return d
 
 
 
 
 def resolve_build_args(build):
 def resolve_build_args(build):
     args = parse_build_arguments(build.get('args'))
     args = parse_build_arguments(build.get('args'))
-    return dict(resolve_env_var(k, v) for k, v in six.iteritems(args))
+    d = dict(resolve_env_var(k, v) for k, v in six.iteritems(args))
+    if '_' in d.keys():
+        del d['_']
+    return d
 
 
 
 
 def validate_extended_service_dict(service_dict, filename, service):
 def validate_extended_service_dict(service_dict, filename, service):
@@ -730,7 +736,7 @@ def resolve_env_var(key, val):
     elif key in os.environ:
     elif key in os.environ:
         return key, os.environ[key]
         return key, os.environ[key]
     else:
     else:
-        return key, ''
+        return "_", None
 
 
 
 
 def env_vars_from_file(filename):
 def env_vars_from_file(filename):