我有一个 (.drone.yml) 测试文件,我想从中构建一个 docker 映像。根据文件,我必须使用无人机来构建它。
我尝试了本教程(https://www.digitalocean.com/community/tutorials/how-to-perform-continuous-integration-testing-with-drone-io-on-coreos-and-docker)和其他几个教程,但是我失败了 。
谁能告诉我一个简单的方法来构建 .drone.yml !谢谢
我有一个 (.drone.yml) 测试文件,我想从中构建一个 docker 映像。根据文件,我必须使用无人机来构建它。
我尝试了本教程(https://www.digitalocean.com/community/tutorials/how-to-perform-continuous-integration-testing-with-drone-io-on-coreos-and-docker)和其他几个教程,但是我失败了 。
谁能告诉我一个简单的方法来构建 .drone.yml !谢谢
请注意,此答案适用于无人机版本 0.5
您可以使用 Docker 插件在成功完成构建时构建和发布 Docker 映像。您将 Docker 插件添加为 .drone.yml 文件的构建管道部分中的一个步骤:
pipeline:
build:
image: golang
commands:
- go build
- go test
publish:
image: plugins/docker
repo: foo/bar
在许多情况下,您会希望将此步骤的执行限制到某些分支。这可以通过添加运行时条件来完成:
publish:
image: plugins/docker
repo: foo/bar
when:
branch: master
您需要向无人机提供 Docker 注册表的凭据,以便无人机发布。这些凭据可以直接在 yaml 文件中声明,但通常不建议将这些值以纯文本形式存储在 yaml 中:
publish:
image: plugins/docker
repo: foo/bar
username: johnsmith
password: pa55word
when:
branch: master
您也可以使用内置的秘密存储提供您的凭据。可以使用 Drone 命令行实用程序在每个存储库的基础上将机密添加到机密存储:
export DRONE_SERVER=http://drone.server.address.com
export DRONE_TOKEN=...
drone secret add \
octocat/hello-world DOCKER_USERNAME johnsmith
drone secret add \
octocat/hello-world DOCKER_PASSWORD pa55word
drone sign octocat/hello-world
然后将秘密插入到 rutnime 的 yaml 中:
publish:
image: plugins/docker
repo: foo/bar
username: ${DOCKER_USERNAME}
password: ${DOCKER_PASSWORD}
when:
branch: master