使用官方go解析器将dockerfile解析为高级表示。

dockerfile的Python项目详细描述


Build StatusBuild status

文档文件

这个存储库的目标是提供一个包装器 docker/docker的Dockerfiles分析器。

python库

安装

此项目使用setuptools-golang 从源头建造时。要从源代码构建,需要一个go编译器。

如果您使用的是Linux和足够新的PIP(>;=8.1),那么您应该能够 只需下载预先构建的manylinux1轮子。

pip install dockerfile

使用量

这个库提供了三个api函数:

dockerfile.all_cmds()

列出所有已知的dockerfile命令。

>>>dockerfile.all_cmds()('add','arg','cmd','copy','entrypoint','env','expose','from','healthcheck','label','maintainer','onbuild','run','shell','stopsignal','user','volume','workdir')

dockerfile.parse_file(filename)

按文件名分析Dockerfile。 返回表示每个层的tupledockerfile.Command对象 停靠文件。 可能的例外情况:

  • dockerfile.GoIOError:无法打开文件。
  • dockerfile.ParseError:dockerfile不可解析。
>>>pprint.pprint(dockerfile.parse_file('testfiles/Dockerfile.ok'))(Command(cmd='from',sub_cmd=None,json=False,original='FROM ubuntu:xenial',start_line=1,flags=(),value=('ubuntu:xenial',)),Command(cmd='cmd',sub_cmd=None,json=True,original='CMD ["echo", "hi"]',start_line=2,flags=(),value=('echo','hi')))

dockerfile.parse_string(s)

使用字符串分析dockerfile。 返回表示每个层的tupledockerfile.Command对象 停靠文件。 可能的例外情况:

  • dockerfile.ParseError:dockerfile不可解析。
>>>dockerfile.parse_string('FROM ubuntu:xenial')(Command(cmd='from',sub_cmd=None,json=False,original='FROM ubuntu:xenial',start_line=1,flags=(),value=('ubuntu:xenial',)),)

进入库

比Docker/Docker提供的API稍微方便一点?可能不是 非常有用——这个存储库的重点是一个python包装器。

安装

go get github.com/asottile/dockerfile

使用量

godoc

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用MVC设计模式观察嵌套对象   java将多个客户端连接到服务器   合并Java Web应用程序   Spring Security中未捕获java AuthenticationSuccessEvent   java Firebase JSON到Arraylist内部的Arraylist,存在对象问题   在Java15的sealedclasses特性中,final类和非密封类之间有什么区别?   java我可以使用数组。copyOf制作二维数组的防御副本?   java球不会在屏幕上移动   Java类如何在同一个文件中包含两个类?   java使用“Character.isWhiteSpace”删除所有空白   java阻止在RealmList中保存时创建领域对象   如何仅在ConnectionFactory上使用Java JMS身份验证   spring可以强制java对象在运行时实现接口吗?   socket无法在JAVA中使用TCP启用双工模式通信