Use JQ to parse environment variables from docker container and then transform them into arguments to be passing into the docker run command.
#!/usr/bin/env python
import argparse
import json
from subprocess import check_output
def inspect(container):
return json.loads(check_output(["docker", "inspect", container]))
def prep_arg(string):
return string.replace(' ', '\\ ').replace('\t', '').replace('\'', '\\\'');
def transform_to_args(env):
filtered_env = filter((lambda x: not x.startswith('affinity:container')), env)
return reduce((lambda acc, string: acc + (" -e %s" % prep_arg(string))), filtered_env, "");
def main():
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('docker-id', type=str, help='Docker container id')
args = vars(parser.parse_args())
data = inspect(args['docker-id'])
print transform_to_args(data[0]['Config']['Env'])
if __name__ == "__main__":
main()