生成Docker图像,捕获信息以减少将来重新构建的频率
thriftybuilder的Python项目详细描述
[![构建状态](https://travis-ci.org/wtsi-hgi/thrifty-builder.svg?branch=master)(https://travis ci.org/wtsi hgi/thrifty builder)
[![codecov](https://codecov.io/gh/wtsi hgi/thrifty builder/branch/master/graph/badge.svg)(https://codecov.io/gh/wtsi hgi/thrifty builder)
[![PYPI版本](https://badge.fury.io/py/thrifty builder.svg)(https://badge.fury.io/py/thriftybuilder)
捕获信息以减少将来重新构建的频率清空,或者如果正在生成
请将其放置在另一台具有单独缓存的计算机上。
在我们的设置中,我们将在CI中生成大量Docker映像。ci作业每次都在不同的计算机上运行(具有单独的缓存),这意味着如果使用"docker build",则每次ci运行时都将重建所有图像。先拉会加快速度,但它需要首先将所有图像下载到构建机中!
目的是尽量减少ci运行时间,并尽可能保持docker映像的稳定性(通常很难将进入映像的所有内容进行版本化,因此每次重新构建都会创建稍微不同的
映像,即使上下文和dockerfile相同)。
=1.21)
-python 3.6+
git+https://github.com/wtsi-hgi/thrifty builder.git@master\egg=thriftybuilder
```
\usage
\configuration
使用该工具需要生成配置yaml文件。这个文件详细说明了要构建的图像,
Docker注册表将创建的图像推送到(可选)和校验和存储的位置。
#####local校验和存储:
``yaml
type:local
path:/root/.thrifty/checksums
````
令牌:"{env['consu http戡u token']}"可选:如果未设置,则从consu环境变量派生:key:ci/image checksums
lock:ci/image checksums.lock
````
注意:要使用consu backed存储,必须安装"consu戡requirements.txt"中的要求(不这样做默认情况下,
配置位置
可选参数:
-h,--帮助显示此帮助消息并退出
-v增加日志详细程度(添加多个
进一步增加)
--仅生成打印stdout上新生成图像的详细信息
```
###示例
u configuration.yml
``yaml
docker:
图像:
-名称:wtsi hgi/image-1
dockerfile:/images/image-1/dockerfile
上下文:/images
-名称:wtsi hgi/image-2:version-1
dockerfile:/images/image-2/dockerfile
to be/images/image-2
注册表:
-url:docker.io
用户名:{env['docker\u io\u username']}"
密码:{env['docker_io_password']}"
校验和存储:
类型:consun
url:{{env['consun http_addr']}"
令牌:{env['consun http_token']}"
密钥:ci/图像校验和
锁:ci/image校验和。lock
```
cli:
``bash
thrifty configuration.yml
{"wtsi hgi/image-1":"b2db4c1ae978201407c69573ba89a9b8","wtsi-hgi/image-2":"f9a4d7cc9f7133755636973c23c2cc28288de"}
```
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `安装程序
安装工具的依赖项和测试所需依赖项:
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `是的-u-r consun requirements.txt
```
```bash
pythonpath=.在项目目录中测试
```bash
。python-m unittest discover-v-s thriftybuilder/tests
```
ci运行测试并生成"run tests.sh"覆盖率。此脚本运行上述测试,
除了测试工具是否可以安装而不出错之外。
要完全在Docker中运行测试,使用"在docker.sh中运行测试"(实验)。
-更具异国情调的Docker映像生成器可能会存储有关生成映像的生成上下文的信息。
[![codecov](https://codecov.io/gh/wtsi hgi/thrifty builder/branch/master/graph/badge.svg)(https://codecov.io/gh/wtsi hgi/thrifty builder)
[![PYPI版本](https://badge.fury.io/py/thrifty builder.svg)(https://badge.fury.io/py/thriftybuilder)
捕获信息以减少将来重新构建的频率清空,或者如果正在生成
请将其放置在另一台具有单独缓存的计算机上。
在我们的设置中,我们将在CI中生成大量Docker映像。ci作业每次都在不同的计算机上运行(具有单独的缓存),这意味着如果使用"docker build",则每次ci运行时都将重建所有图像。先拉会加快速度,但它需要首先将所有图像下载到构建机中!
目的是尽量减少ci运行时间,并尽可能保持docker映像的稳定性(通常很难将进入映像的所有内容进行版本化,因此每次重新构建都会创建稍微不同的
映像,即使上下文和dockerfile相同)。
=1.21)
-python 3.6+
git+https://github.com/wtsi-hgi/thrifty builder.git@master\egg=thriftybuilder
```
\usage
\configuration
使用该工具需要生成配置yaml文件。这个文件详细说明了要构建的图像,
Docker注册表将创建的图像推送到(可选)和校验和存储的位置。
#####local校验和存储:
``yaml
type:local
path:/root/.thrifty/checksums
````
令牌:"{env['consu http戡u token']}"可选:如果未设置,则从consu环境变量派生:key:ci/image checksums
lock:ci/image checksums.lock
````
注意:要使用consu backed存储,必须安装"consu戡requirements.txt"中的要求(不这样做默认情况下,
配置位置
可选参数:
-h,--帮助显示此帮助消息并退出
-v增加日志详细程度(添加多个
进一步增加)
--仅生成打印stdout上新生成图像的详细信息
```
###示例
u configuration.yml
``yaml
docker:
图像:
-名称:wtsi hgi/image-1
dockerfile:/images/image-1/dockerfile
上下文:/images
-名称:wtsi hgi/image-2:version-1
dockerfile:/images/image-2/dockerfile
to be/images/image-2
注册表:
-url:docker.io
用户名:{env['docker\u io\u username']}"
密码:{env['docker_io_password']}"
校验和存储:
类型:consun
url:{{env['consun http_addr']}"
令牌:{env['consun http_token']}"
密钥:ci/图像校验和
锁:ci/image校验和。lock
```
cli:
``bash
thrifty configuration.yml
{"wtsi hgi/image-1":"b2db4c1ae978201407c69573ba89a9b8","wtsi-hgi/image-2":"f9a4d7cc9f7133755636973c23c2cc28288de"}
```
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `安装程序
安装工具的依赖项和测试所需依赖项:
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `是的-u-r consun requirements.txt
```
```bash
pythonpath=.在项目目录中测试
```bash
。python-m unittest discover-v-s thriftybuilder/tests
```
ci运行测试并生成"run tests.sh"覆盖率。此脚本运行上述测试,
除了测试工具是否可以安装而不出错之外。
要完全在Docker中运行测试,使用"在docker.sh中运行测试"(实验)。
-更具异国情调的Docker映像生成器可能会存储有关生成映像的生成上下文的信息。