Docker开发工具

docker-dev的Python项目详细描述


#docker和docker compose的开发工具

`docker dev`简化了
开发中涉及docker和docker compose的常见任务。**其主要功能是命名空间docker compose projects**,因此
您可以轻松地为存储库中的每个分支拥有一个项目。


docker compose projects被赋予一个名称,默认为project
目录的名称。这个名字然后被前缀到DOCKER资源(例如,图像,
容器),为DOCKER撰写项目。
BR/>‘DOCKER DEV’将项目名称扩展到包括活动分支名称,并且
然后代理调用“DOCKECOMPOSE”,以便他们引用新项目
名称。例如,如果您的项目名为“foo”,而您的活动git分支
是“master”,docker compose项目名称将被设置为“foo master”。

pypi上提供此工具为
[docker dev](https://pypi.python.org/pypi/docker dev)。


这意味着
“git checkout”与“docker compose”配合得很好。
-在运行“docker compose build”之前运行主机级命令。这在某些环境中是必不可少的,例如Python,如果你在容器的根上安装路径BR/>以获得即时代码重载,那么必须在项目的根部存在一个**蛋信息'BR/>目录。BR/> -很容易运行你的测试套件,并将它们的输出导出到主机。例如,
你可以使用你的测试报告把你的测试报告暴露给你的连续集成
服务。
BR/>开发> BR/> 'DOCKER DEV'代理'DOCKER撰写'子命令'Buff','Up'和'Duff':

-'DOCKER DEVBug ''将运行所有你已经安装Bu/>的预构建钩子(见下文),它也将拉在实际构建映像之前,任何基本映像的最新版本都会
-`docker dev up`确保每次调用时都有新的容器。
-`docker dev down`确保docker
(包括映像,容器和卷)。它需要一个docker compose文件(默认为testing.dc.yml)
,该文件定义了负责运行测试的所有服务。


每个测试服务必须以“test”开头,并且必须将其输出放在
`/tmp/test reports`,因为该目录的内容稍后将导出到
主机。下面是一个docker compose文件的测试示例:

``yaml
版本:“2”
服务:
测试主:
生成:“。”
命令:“test runner--output dir=/tmp/test reports”
```

为了防止名称冲突,运行时在docker compose
项目名称中添加后缀“-test”。

在Docker中运行此命令后,即使测试失败也不行。


` docker dev`将把
活动分支名称附加到docker compose项目的名称中。如果你想覆盖这个行为或者增加对另一个VCS的支持,你需要创建一个计算名称的函数,例如:

``python
`def get_project_name(docker_compose_file_path):
return'suffix'
```

必须在项目的“setup.py”文件中注册该函数
,作为“docker dev.project\u name\u generator”组的入口点。例如,

`` python
设置(
name='your-distribution',
入口点={
‘docker\u dev.project\u name\u generator':[
‘foo=your\u包:获取项目名称',
],
},


````

/>要在构建映像之前在主机级别执行例程,可以创建一个预构建挂钩。例如:

``python
def hook(docker_compose_file_path,project_name):
run_some_commands()
```

在组
“docker_dev.pre_build_hooks”下,

“docker dev”将无条件运行所有已安装的预构建挂钩。

编写本文时,只有一个插件可用:
[docker dev python](https://github.com/2degrees/docker dev python)。

cli

运行
“docker dev--help”。

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

推荐PyPI第三方库


热门话题
java类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?