管理Docker堆栈的命令行程序。
hmsdbmitc-stack的Python项目详细描述
#堆栈
####运行Docker服务堆栈的程序
##目的
这是一个为常见任务提供一些方便包装的程序。 使用停靠的微服务堆栈进行开发时。该项目的目标 简化本地堆栈的一些管理,使 运行和测试时在整个堆栈上进行开发。
应用程序取决于在basestack.yml中定义的配置 将要生成的应用程序的文件。
##应用程序属性
- 存储库:这应该指定应用程序Git存储库的URL。
- 分支:克隆回购时要签出的特定分支。
- 包:此应用程序所依赖的堆栈中列出的任何包
##包属性
- 名称:从pypi/mirror安装时要使用的包的名称
- 路径:指向包含包源的目录的路径
- 构建:更新包时应执行构建命令堆栈
##设置
<P>0。创建python virtualenv并安装需求: pip安装-r requirements.txt <P>1。第一步是在overrides/{app} 目录。这些文件将用于构建 将在堆栈中运行。通常它们会紧密地镜像文件 该应用程序在其生产环境中使用,但有一些小的调整 在本地运行并与其他本地应用程序交互。这个目录 如果应用程序要运行生成的图像,则必须包含dockerfile。 <P>2。下一步是将所有需要的存储库克隆到apps目录中。 堆栈包含一些用于管理子树的方便命令 储存库。通过运行stack init来执行一个命令。 有关存储库管理的详细信息,请参见下文。 <P>3。第三步是确保docker compose.yml文件是完整的 并准确填写以包含应用程序及其配置。 这包括在 容器。这允许文件更改来更新服务 自动,以便可以立即测试更改。验证当前设置 通过运行堆栈检查 <P>4。最后,用任何额外的代码位更新hook脚本 需要运行堆栈。是否需要收取NPM 克隆repo后的依赖关系或需要数据库 在清理应用程序时清除,这是自定义功能的位置 应该是活的。##堆栈命令
要检查堆栈配置并确保卷路径正确, 存在所需的图像等:
>;堆栈检查[<;app>;]
不传递应用程序将遍历 docker compose.yml文件并检查所有配置。
运行initialize命令将所有需要的存储库克隆到 各分支机构:
>;堆栈初始化
要启动堆栈,请运行以下命令(pass-dto daemonize 过程):
>;叠加[-d]
如果由于某种原因(更新的需求等)需要重建容器, 运行以下命令(app是docker compose.yml中服务的键):
>;堆栈reup<;app>;[–干净]
相反,您可以将shell放入所需的容器并运行需求 更新命令:
>;堆栈shell<;app>;[-sh]
stack默认为尝试打开bash shell,但您可以默认为 如果bash不可用,则返回sh。
您还可以检查容器上的日志,其中包含对 轻松找到相关日志:
>;堆栈日志<;app>;[–minutes=n][–lines=n[-f]
您可以指定在过去几分钟内启动日志检索 或者要得到的行数。您还可以传递-f标志 容器运行时的日志。
这将停止并移除容器,然后重新启动它。清洁的 标记将清除现有的容器映像并在再次运行之前重新生成。
要将堆栈下移,请运行以下命令:
>;叠加
这仅仅是包装了docker compose down–volumes并将堆栈向下 并删除所有剩余的数据卷。
>;堆栈包[包]
此命令将尝试生成包并将其上载到pypi 镜像供堆栈中的应用程序使用。任何已标记的应用 因为依赖于此软件包将触发重新安装 成功注册新生成时自动打包 本地pypi镜像。
##git子树助手命令
堆栈应用程序包含为git子树。命令已添加到堆栈 包装并简化使用这些存储库所需的命令。
克隆之前,请确保应用程序存在于docker compose.yml文件中 并具有所需的配置,即存储库url。电流 docker compose.yml文件演示了如何对当前集合执行此操作 应用程序。
git子树命令将不会在工作中运行挂起的更改 目录。在运行子树命令之前提交所有更改。
要将现有回购复制到应用程序的目录:
>;堆栈克隆<;应用程序>;<;分支>;
这将把repo克隆为apps目录中的子树 (默认值:{project_root}/apps)。如果应用程序已经存在于 应用程序目录,将删除该副本并指定分支 将在其位置克隆。
要将远程更改拉入本地分支,请使用pull命令:
>;堆栈拉取<;app>;<;分支>;[-挤压]
所有提交都被添加到堆栈存储库中,因此挤压 传入的提交保持历史整洁。
为指定的应用程序创建新分支:
>;堆栈签出<;app>;-b<;分支>;
这会将子树拆分为新的指定分支。提交更改 与整个堆栈存储库一样。一旦更新准备好推送, 像往常一样运行push命令:
>;堆栈推送<;应用程序>;<;分支>;[-挤压]
这将收集与特定子树相关的提交并推送 到新分支的原点。–squash命令将折叠那些 提交为一次提交。
要返回基本分支,请像往常一样签出分支:
>;堆栈签出<;应用程序>;<;分支>;
这将完全删除子树,并在 它的位置。