跳到主要内容

自定义服务

了解如何配置自定义服务、使用环境变量对其进行自定义以及在构建操作中使用。

Buddy的核心功能是在应用程序交付到服务器之前对其进行构建和测试。通常,如果您想正确测试您的应用程序,您需要一个数据库或其他一些服务。在 MySQL、PSQL 或 MongoDB 等预定义服务之上,您可以从头开始创建自己的服务。此功能允许您为应用程序的前端和后端运行测试,或者创建具有自定义配置的数据库服务并在您的构建中使用。

信息

尽管Buddy还不支持Docker Compose,但自定义服务让您基本上可以定义任何可以通过它实现的配置。事实上,所有构建操作和服务都被设计为按照Docker Compose运行。

如何添加自定义服务

就像任何其他微服务一样添加自定义服务。只需转到构建操作中的"服务"选项卡,然后从下拉列表中选择"自定义"服务:

自定义服务

添加自定义服务后,需要定义以下内容:

  • 主机名 – 其他服务将用于连接到此服务的 ID
  • Docker镜像 — 注册中心、镜像及其版本
  • [可选] 运行命令和挂载的件系统

自定义服务 自定义服务

使用您自己的镜像即服务

Buddy默认从选定的私有或公共Docker注册中心中提取镜像,并提供对Docker Hub、Amazon ECR和Google GCR注册中心的专门支持。您还可以使用由流水线中的先前操作构建的镜像。例如,您可以为前端和后端构建镜像,然后使用自定义构建操作一起运行和测试。 为此,请选择使用之前操作中构建的Docker镜像,然后选择下面的镜像:

自定义服务

整个流水线看起来像这样,有两个操作构建应用程序的前端和后端:

流水线示例

您最多可以为每个构建操作添加6个服务。第一个是构建操作的主要镜像,剩下的5个可以从“服务”选项卡中添加。

环境变量与文件系统自定义服务

每次运行自定义服务时,Buddy都会向其发送构建操作中定义的变量。通过这种方式,您可以自定义其工作方式。例如,您可以将MYSQL_ROOT_PASSWORD或MYSQL_ROOT_USER变量发送到官方MySQL镜像,以便在启动期间配置镜像:

变量

除此之外,如果需要从版本控制访问文件,例如配置文件,您可以将流水线文件系统挂载到服务:

构建操作选项

服务缓存数据

可以缓存预定义的服务(MySQL、MongoDB、Postgres等)。这意味着数据库只传种一次,从而大大加快了构建速度。为了在自定义服务中缓存数据,您必须使用流水线文件系统(见上文),或定义将为每个服务缓存的路径: Defining a path for a custom service cache

已挂载的卷将在执行之间保持持久性,即缓存只会从流水线设置中手动清除,或者在启用了清除缓存选项的情况下运行执行时。