percymamedy/dcompose

此包已被废弃且不再维护。作者建议使用percymamedy/dcompose包代替。

Laradock 框架命令行工具。

安装: 2

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 3

类型:项目

v0.1.0-beta.4 2020-04-19 12:47 UTC

README

Latest Stable Version Latest Unstable Version Build Status License Total Downloads

介绍

Laradock是一个强大的工具,它帮助构建用于运行Laravel或PHP应用的Docker环境。

然而,确定并仅使用您应用程序所需的具体组件可能会相当痛苦。大多数时候,您可能只会使用少数几个镜像,并记住每个项目应该使用哪个镜像(以便可以运行docker-compose up -d ..)是非常痛苦的。

我创建了Dcompose,因为我总是发现自己需要从laradock复制所需的镜像Dockerfile到我的项目中,并为每个项目重新创建docker-compose.yml文件。受到Composer的启发,我开始了创建自己工具的旅程,这个工具可以在我的项目中“需要”我需要的组件,并自动更新我的docker-compose.yml文件。

这就是Dcompose的诞生。我不知道这个库最终会走到哪里,但我的希望是,那些与我遇到相同问题的人可能会发现它很有用。

许可

Dcompose是开源软件,采用MIT许可

安装

首先确保您的系统上已安装Docker和Docker Compose。请查看DockerDocker Compose安装文档。

然后,使用Composer下载Dcompose

$ composer global require percymamedy/dcompose

请确保将Composer的全局vendor bin目录放置在您的$PATH中,以便系统可以定位Dcompose可执行文件。根据您的操作系统,此目录位于不同的位置;然而,一些常见位置包括

  • macOS: $HOME/.composer/vendor/bin
  • GNU / Linux发行版: $HOME/.config/composer/vendor/bin

使用

初始化命令

使用init命令,您可以开始定义要在项目中使用哪些服务。您应该在项目根目录中运行此命令,如下所示

$ dcompose init

这是一个交互式命令,将询问您的项目名称和您将使用的服务。服务只是存在的Laradock服务,查看laradock的github仓库以了解您可以要求的所有服务。

运行此命令后,将在项目根目录中创建一个新的.docker/文件夹,其中包含仅包含服务和正确的docker-compose.yml文件布局。

您还会在.docker文件夹中找到一个.env文件。您可以修改此文件以更改特定于您环境的值。

现在,您可以在.docker/文件夹内运行以下命令来运行您的项目

$ docker-compose up -d

要求命令

如果您错过了某个服务或需要从laradock获取其他服务,可以运行以下要求的命令:

$ dcompose require <service_name>

其中 <service_name> 是laradock服务之一的名字。这将把该服务添加到您的 .docker/ 文件夹和 docker-compose.yml 文件中。

现在您可以在 .docker/ 文件夹中运行以下命令:

$ docker-compose up -d

或者

$ ./containers start

如果您已经运行了 generate-tools 命令。

删除命令

您可以使用以下命令来删除服务:

$ dcompose remove <service_name>

这不会从 .docker/ 文件夹中删除服务文件夹,也不会从 docker-compose.yml 文件中删除正确的部分。

然而,为该服务创建的容器、镜像和卷仍然存在于您的系统上。要完全删除它们,您应该运行以下docker命令:

$ docker rm <container_name>
$ docker rmi <image_name>
$ docker volume rm <volume_name>

生成工具命令

生成命令行工具有助于从laradock运行和执行docker容器。

$ dcompose generate-tools

将创建一个新的 containers 脚本,它为您提供三个选项:

启动docker容器

$ ./containers start

停止docker容器

$ ./containers stop

在启动容器后通过ssh进入工作空间容器

$ ./containers workspace

刷新命令

laradock文件以这种方式被获取和缓存,以便在不需要每次都从dist重新获取文件的情况下,更快地执行requireremoveinit命令。

然而,无法知道laradock何时被更新,因此refresh命令允许我们刷新缓存的laradock文件。

$ dcompose refresh

路线图v0.2

  • 通过面向对象的方法使代码更加一致。
  • 使用类似doctrine cache的东西来管理laradock文件,从而通过过期来消除刷新命令的需要。

路线图v0.3

  • 添加一个包含所有docker容器的JSON或YML格式的manifest文件,从而消除提交.docker文件夹的需要。

鸣谢

非常感谢所有辛勤工作以创造令人惊叹产品的开发者们!

创建者

Percy Mamedy

Twitter: @PercyMamedy
GitHub: percymamedy