Need help with drone-docker?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

drone-plugins
262 Stars 289 Forks Apache License 2.0 419 Commits 51 Opened issues

Description

Drone plugin for publishing Docker images using Docker-in-Docker

Services available

!
?

Need anything else?

Contributors list

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. For the usage information and a listing of the available options please take a look at the docs.

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

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 

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  --future-release v1.0.0

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.