使用官方go解析器将dockerfile解析为高级表示。
dockerfile的Python项目详细描述
文档文件
这个存储库的目标是提供一个包装器 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。
返回表示每个层的tuple
个dockerfile.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。
返回表示每个层的tuple
个dockerfile.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