python 使用JQ从docker容器解析环境变量,然后将它们转换为参数以传递到docker run命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用JQ从docker容器解析环境变量,然后将它们转换为参数以传递到docker run命令相关的知识,希望对你有一定的参考价值。
#!/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()
以上是关于python 使用JQ从docker容器解析环境变量,然后将它们转换为参数以传递到docker run命令的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk 上的 Docker - 无法从容器访问环境变量
jenkins学习4-进docker容器安装python3环境
将参数传递给 Docker 容器中的 Python argparse
jenkins学习4-进docker容器安装python3环境
docker容器下搭建python环境
从 Docker 容器中获取环境变量