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 容器中获取环境变量