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 和其他开发者一起交流。