跳转到主要内容

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

项目描述

build status pre-commit.ci status

dockerfile

此存储库的目的是提供一个包装器,用于docker/docker的dockerfile解析器。

python库

安装

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

如果您正在使用linux并且pip足够新(>=8.1),您应该能够直接下载预先构建的manylinux1 wheels。

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。返回表示Dockerfile每一层的tuple,其中包含dockerfile.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每一层的tuple,其中包含dockerfile.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',)),)

go库

比docker/docker提供的API稍微方便一些?可能不是非常有用——此存储库的主要目的是一个Python包装器。

安装

go get github.com/asottile/dockerfile

用法

godoc

项目详情


下载文件

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

源分发

dockerfile-3.3.1.tar.gz (6.9 kB 查看哈希值)

上传时间

构建分发

dockerfile-3.3.1-cp38-abi3-win_amd64.whl (2.0 MB 查看哈希值)

上传时间 CPython 3.8+ Windows x86-64

dockerfile-3.3.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl (2.0 MB 查看哈希值)

上传时间 CPython 3.8+ manylinux: glibc 2.5+ x86-64

dockerfile-3.3.1-cp38-abi3-macosx_13_0_arm64.whl (1.9 MB 查看哈希值)

上传时间 CPython 3.8+ macOS 13.0+ ARM64

dockerfile-3.3.1-cp38-abi3-macosx_12_0_x86_64.whl (2.0 MB 查看哈希值)

上传时间 CPython 3.8+ macOS 12.0+ x86-64

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面