Skip to main content

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

项目描述

构建状态 构建状态 pre-commit.ci 状态

dockerfile

这个存储库的目标是 为 docker / docker 的 dockerfiles 解析器提供一个包装器。

蟒蛇库

安装

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

如果您使用的是 linux 和足够新的 pip (>=8.1),您应该能够下载预构建的 manylinux1 轮子。

pip install dockerfile

用法

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

dockerfile.all_cmds()

列出所有已知的 dockerfile cmd。

>>> 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。返回代表 Dockerfile 每一层的对象tupledockerfile.Command可能的例外情况:

  • dockerfile.GoIOError: 文件无法打开。
  • dockerfile.GoParseError: 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。返回代表 Dockerfile 每一层的对象tupledockerfile.Command可能的例外情况:

  • dockerfile.GoParseError: 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

用法

戈多克

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

dockerfile-3.2.0.tar.gz (7.0 kB 查看哈希

已上传 source

内置发行版

dockerfile-3.2.0-cp38-abi3-macosx_12_0_arm64.whl (1.8 MB 查看哈希

已上传 cp38

dockerfile-3.2.0-cp36-abi3-macosx_10_14_x86_64.whl (1.9 MB 查看哈希

已上传 cp36