Drone/agent or drone/drone-runner-docker?

Just seeking some clarification on what container image we should be using for our Drone “worker” nodes.

Since early 2020, we have been using the drone/agent container image, but it appears to be over a year old now. The docs don’t even mention an “agent”, just “runners” (looks like we’d use the runner for docker). Perhaps this has been a change in terminology we didn’t notice?

The drone/drone-runner-docker image appears to have been updated today for the platform tags (windows-1809-amd64, linux-arm, linux-amd64, etc), but the version tags (1.6, 1) are still 25 days old. What’s the versioning strategy for this container? Should we simply be using the platform tag (linux-amd64 in our case)? Will the version tags be updated at some point?

Thank you for any guidance.
-Marc

kw: drone agent docker runner version platform tags dockerhub worker

since early 2020 we have been using the drone/agent container image, but it appears to be over a year old now. The docs don’t even mention an “agent”, just “runners”

The agent image was deprecated back in 2019 in favor of drone-runner-docker. The reason for this change was because Drone now supports multiple types of runners, each capable of executing pipelines on different target environments (i.e. docker, kubernetes, macstadium, etc).

The drone/drone-runner-docker image appears to have been updated today for the platform tags (windows-1809-amd64, linux-arm, linux-amd64, etc), but the version tags (1.6, 1) are still 25 days old.

Every time we push to master we build and publish an unstable release for each supported os and architecture:

  • linux-amd64
  • linux-arm
  • linux-arm64
  • windows-1809-amd64
  • windows-1904-amd64

Once these images are published we create and publish a docker manifest for :latest so that when you docker pull the :latest tag, it points to the latest os and architecture specific images (above).

When we tag a release, we publish multiple images as well. For example, when we tag 1.6.0 it results in the following images:

  • 1.6.0-linux-amd64
  • 1.6.0-linux-arm
  • 1.6.0-linux-arm64
  • 1.6.0-windows-1809-amd64
  • 1.6.0-windows-1904-amd64

We then create a docker manifest that points 1, 1.6 and 1.6.0 to the above os and architecture-specific images.

Should we simply be using the platform tag (linux-amd64 in our case)?

We recommend using drone/drone-runner-docker:1 which will always pull the latest stable release for your host platform.

Will the version tags be updated at some point?

We periodically create a tagged release once we have had a chance to test the unstable build. There is no specific cadence here. We tag a release when we feel comfortable with the features and we are happy with the quality and testing.

Thanks very much for the explanation, @bradrydzewski!