Fork of https://github.com/drone-plugins/drone-docker with special features needed by Gitea Docker releases.
Go to file
Lunny Xiao c9c188ce42 Update README about new auto_tag logic (#1)
Reviewed-on: https://gitea.com/gitea/drone-docker/pulls/1
Reviewed-by: 6543 <6543@obermui.de>
Reviewed-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-committed-by: Lunny Xiao <xiaolunwen@gmail.com>
2022-06-27 06:35:53 +08:00
.github Properly configure permissions for protected branches 2019-01-22 10:52:39 +01:00
cmd Add support for multiple Buildkit secrets with env vars or files as source (#359) 2022-05-03 10:22:55 +01:00
docker (feat) update arm64 base image, and add some dev notes to the readme 2022-05-31 16:52:58 +01:00
docs (DRON-237) cards add link to image repo, minor cleanup 2022-02-23 12:28:40 +00:00
scripts/windows Fix ECR & GCR docker publish on windows (#352) 2022-01-12 22:32:57 +05:30
.drone.jsonnet Create ACR plugin extension (#228) 2019-03-28 11:20:36 +01:00
.drone.yml Serialize windows 1809 pipelines 2022-01-06 13:28:00 +05:30
.github_changelog_generator (maint) v19.03.9 release prep 2021-10-13 14:27:33 +01:00
.gitignore replace govendor with dep 2017-10-30 23:05:06 -07:00
CHANGELOG.md v20.13.0 prep 2022-06-08 16:28:12 +01:00
LICENSE Initial commit 2015-05-14 16:58:41 -07:00
README.md Update README about new auto_tag logic (#1) 2022-06-27 06:35:53 +08:00
card.go (DRON-237) cards add link to image repo, minor cleanup 2022-02-23 12:28:40 +00:00
daemon.go update config.json messaging 2020-03-24 13:49:10 -07:00
daemon_win.go fix docker home path on windows 2020-03-24 14:34:54 -07:00
docker.go Add support for multiple Buildkit secrets with env vars or files as source (#359) 2022-05-03 10:22:55 +01:00
docker_test.go Add support for multiple Buildkit secrets with env vars or files as source (#359) 2022-05-03 10:22:55 +01:00
go.mod (DRON-237) cards add link to image repo, minor cleanup 2022-02-23 12:28:40 +00:00
go.sum (DRON-237) cards add link to image repo, minor cleanup 2022-02-23 12:28:40 +00:00
pipeline.libsonnet (maint) bump git to 1.13 for build and test 2021-10-13 14:53:32 +01:00
tags.go semver parsing fails pipeline step 2020-05-19 13:26:13 -04:00
tags_test.go semver parsing fails pipeline step 2020-05-19 13:26:13 -04:00

README.md

drone-docker

Build Status Gitter chat Join the discussion at https://discourse.drone.io Drone questions at https://stackoverflow.com Go Doc Go Report

Drone plugin uses Docker-in-Docker to build and publish Docker images to a container registry.

** This repository is a fork of drone-plugins/drone-docker with a auto_tag logic changed.

When pushing a tag and using auto_tag: true, the logic is below(Not implemented yet):

For git branches:

  1. Tagging main`` branch It will produce the tags: dev`.
  2. Tagging release/vxxx branch It will produce the tags: 1.1x-dev

For git tags:

  1. Tagging a dev version which ends with -dev It will produce the tags: <original_tag>
  2. Tagging a pre-release version which ends with -rcx, x start from 1 to bigger number It will produce the tags: <original_tag>
  3. Tagging a latest stable release, we need to know if the version is the newest It will produce the tags: <original_tag>, 1,1.1x, latest
  4. Tagging a low version stable release It will produce the tags: <original_tag>, 1.1x

Build

Build the binaries with the following commands:

export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on

go build -v -a -tags netgo -o release/linux/amd64/drone-docker ./cmd/drone-docker
go build -v -a -tags netgo -o release/linux/amd64/drone-gcr ./cmd/drone-gcr
go build -v -a -tags netgo -o release/linux/amd64/drone-ecr ./cmd/drone-ecr
go build -v -a -tags netgo -o release/linux/amd64/drone-acr ./cmd/drone-acr
go build -v -a -tags netgo -o release/linux/amd64/drone-heroku ./cmd/drone-heroku

Docker

Build the Docker images with the following commands:

docker build \
  --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
  --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
  --file docker/docker/Dockerfile.linux.amd64 --tag plugins/docker .

docker build \
  --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
  --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
  --file docker/gcr/Dockerfile.linux.amd64 --tag plugins/gcr .

docker build \
  --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
  --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
  --file docker/ecr/Dockerfile.linux.amd64 --tag plugins/ecr .

docker build \
  --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
  --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
  --file docker/acr/Dockerfile.linux.amd64 --tag plugins/acr .

docker build \
  --label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
  --label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
  --file docker/heroku/Dockerfile.linux.amd64 --tag plugins/heroku .

Usage

Notice: Be aware that the Docker plugin currently requires privileged capabilities, otherwise the integrated Docker daemon is not able to start.

docker run --rm \
  -e PLUGIN_TAG=latest \
  -e PLUGIN_REPO=octocat/hello-world \
  -e DRONE_COMMIT_SHA=d8dbe4d94f15fe89232e0402c6e8a0ddf21af3ab \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  --privileged \
  plugins/docker --dry-run

Developer Notes

  • When updating the base image, you will need to update for each architecture and OS.
  • Arm32 base images are no longer being updated.

Release procedure

Run the changelog generator.

docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator -u drone-plugins -p drone-docker -t <secret github token>

You can generate a token by logging into your GitHub account and going to Settings -> Personal access tokens.

Next we tag the PR's with the fixes or enhancements labels. If the PR does not fufil the requirements, do not add a label.

Run the changelog generator again with the future version according to semver.

docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator -u drone-plugins -p drone-docker -t <secret token> --future-release v1.0.0

Create your pull request for the release. Get it merged then tag the release.