如何建立docker image frome .drone.yml?

use*_*057 1 containers docker drone.io

我有一个(.drone.yml)测试文件,我想从中构建一个docker镜像.根据文件,我必须使用无人机建造它.

我尝试了本教程(https://www.digitalocean.com/community/tutorials/how-to-perform-continuous-integration-testing-with-drone-io-on-coreos-and-docker)和其他几个教程但是我失败了 .

谁能告诉我一个简单的方法来建立.drone.yml!谢谢

Bra*_*ski 5

请注意,此答案适用于无人机版本0.5

您可以使用Docker插件在成功完成构建时构建和发布Docker镜像.您将Docker插件添加为.drone.yml文件的构建管道部分中的一个步骤:

pipeline:
  build:
    image: golang
    commands:
      - go build
      - go test
  publish:
    image: plugins/docker
    repo: foo/bar
Run Code Online (Sandbox Code Playgroud)

在许多情况下,您需要将此步骤的执行限制为某些分支.这可以通过添加运行时条件来完成:

  publish:
    image: plugins/docker
    repo: foo/bar
    when:
      branch: master
Run Code Online (Sandbox Code Playgroud)

您需要向无人机提供凭证到您的Docker注册表,以便无人机发布.这些凭证可以直接在yaml文件中声明,但通常不建议在yaml中以纯文本格式存储这些值:

  publish:
    image: plugins/docker
    repo: foo/bar
    username: johnsmith
    password: pa55word
    when:
      branch: master
Run Code Online (Sandbox Code Playgroud)

您也可以使用内置的秘密商店提供凭据.可以使用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
Run Code Online (Sandbox Code Playgroud)

然后在rutnime中在你的yaml中插入秘密:

  publish:
    image: plugins/docker
    repo: foo/bar
    username: ${DOCKER_USERNAME}
    password: ${DOCKER_PASSWORD}
    when:
      branch: master
Run Code Online (Sandbox Code Playgroud)