Services 服务

Drone 在 Yaml 文件中使用 services 模块来定义服务容器。下面的配置文件组建了数据库服务容器和缓存服务容器。

pipeline:
  build:
    image: golang
    commands:
      - go build
      - go test

services:
  database:
    image: mysql

  cache:
    image: redis

服务容器可以使用自定义的主机名称(hostnames)来访问。在上面的例子中, mysql 服务被指定了 database 的主机名称,可以使用 database:3306 来访问它。

配置

服务容器一般使用环境变量来自定义默认的用户名,密码以及端口。请查看官方的镜像文档来了解更多内容。

services:
  database:
    image: mysql
+   environment:
+     - MYSQL_DATABASE=test
+     - MYSQL_ALLOW_EMPTY_PASSWORD=yes

  cache:
    image: redis

初始化

服务容器需要一定时间来初始化,然后才能被访问。如果刚开始时无法连接到一个服务,可以先等几秒钟或者添加一个退让(backoff)的机制。

pipeline:
  test:
    image: golang
    commands:
+     - sleep 15
      - go get
      - go test

services:
  database:
    image: mysql

遇到了问题?

我们非常乐意帮助您解决遇到的问题。 您可以先搜索对应文档,查看一些常见的问题。 您还可以地在 discourse 和其他开发者一起交流。

这个网页有没有错误? 请让我们知道 或编辑 这个页面