From 645ce36c36812cf8cc95a0b0b58d6ac97d4b2864 Mon Sep 17 00:00:00 2001 From: Brad Rydzewski Date: Wed, 14 Dec 2016 12:29:50 -0500 Subject: [PATCH] Update DOCS.md for 0.5 format [ci skip] --- DOCS.md | 180 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 151 insertions(+), 29 deletions(-) diff --git a/DOCS.md b/DOCS.md index c27c472..3c9dde1 100644 --- a/DOCS.md +++ b/DOCS.md @@ -22,54 +22,176 @@ The following parameters are used to configure the plugin: * **build_args** - [build arguments](https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables-build-arg) to pass to `docker build` * **mtu** - custom [mtu settings](https://docs.docker.com/v1.8/articles/networking/#docker0) when starting the docker daemon -The following secret values can be set to configure the plugin. +--- +date: 2016-01-01T00:00:00+00:00 +title: Docker +author: drone-plugins +tags: [ publish, docker ] +repo: drone-plugins/drone-docker +image: plugins/drone +--- -* **DOCKER_REGISTRY** - corresponds to **registry** -* **DOCKER_USERNAME** - corresponds to **username** -* **DOCKER_PASSWORD** - corresponds to **password** -* **DOCKER_EMAIL** - corresponds to **email** +The Docker plugin can be used to build and publish images to the Docker registry. The following pipeline configuration uses the Docker plugin to build and publish Docker images: -It is highly recommended to put the **DOCKER_USERNAME**, **DOCKER_PASSWORD** -and **DOCKER_EMAIL** into secrets so it is not exposed to users. This can be -done using the drone-cli. +```yaml +pipeline: + docker: + image: plugins/docker + username: kevinbacon + password: pa55word + email: kevin.bacon@mail.com + repo: foo/bar + tags: latest +``` -```bash -drone secret add --image=plugins/docker \ - octocat/hello-world DOCKER_USERNAME kevinbacon +Example configuration using multiple tags: -drone secret add --image=plugins/docker \ - octocat/hello-world DOCKER_PASSWORD pa55word +```diff +pipeline: + docker: + image: plugins/docker + repo: foo/bar +- tags: latest ++ tags: ++ - latest ++ - 1.0.1 ++ - 1.0 +``` -drone secret add --image=plugins/docker \ - octocat/hello-world DOCKER_EMAIL kevin.bacon@mail.com +Example configuration using build arguments: + +```diff +publish: + docker: + image: plugins/docker + repo: foo/bar ++ build_args: ++ - HTTP_PROXY=http://yourproxy.com ``` -Then sign the YAML file after all secrets are added. +Example configuration using alternate Dockerfile: -```bash -drone sign octocat/hello-world +```diff +publish: + docker: + image: plugins/docker + repo: foo/bar +- dockerfile: Dockerfile ++ dockerfile: path/to/Dockerfile ``` -See [secrets](http://readme.drone.io/0.5/usage/secrets/) for additional -information on secrets +Example configuration using a custom registry: -## Examples +```diff +pipeline: + docker: + image: plugins/docker +- repo: foo/bar ++ repo: index.company.com/foo/bar ++ registry: index.company.com +``` -Simple publishing of a docker container: +Example configuration using inline credentials: -```yaml +```diff pipeline: docker: image: plugins/docker - username: kevinbacon - password: pa55word - email: kevin.bacon@mail.com ++ username: kevinbacon ++ password: pa55word + repo: foo/bar +``` + +# Secrets + +The Docker plugin supports reading credentials from the Drone secret store. This is strongly recommended instead of storing credentials in the pipeline configuration in plain text. + +```diff +pipeline: + docker: + image: plugins/docker +- username: kevinbacon +- password: pa55word repo: foo/bar - tag: latest - dockerfile: Dockerfile - insecure: false ``` +Use the command line utility to add secrets to the store: + +```nohighlight +drone secret add --image=plugins/docker \ + octocat/hello-world DOCKER_USERNAME kevinbacon + +drone secret add --image=plugins/docker \ + octocat/hello-world DOCKER_PASSWORD pa55word +``` + +Don't forget to sign the Yaml after making changes: + +```nohighlight +drone sign octocat/hello-world +``` + +# Secret Reference + +DOCKER_USERNAME +: docker registry username + +DOCKER_PASSWORD +: docker registry password + +DOCKER_EMAIL +: docker registry email + +# Parameter Reference + +registry +: authenticates to this registry + +username +: authenticates with this username + +password +: authenticates with this password + +email +: authenticates with this email + +repo +: repository name for the image + +tags +: repository tag for the image + +dockerfile +: dockerfile to be used, defaults to Dockerfile + +auth +: auth token for the registry + +context +: the context path to use, defaults to root of the git repo + +force_tag=false +: replace existing matched image tags + +insecure=false +: enable insecure communication to this registry + +mirror +: use a mirror registry instead of pulling images directly from the central Hub + +bip=false +: use for pass bridge ip + +dns +: set custom dns servers for the container + +storage_driver +: supports `aufs`, `overlay` or `vfs` drivers + +build_args +: custom arguments passed to docker build + Publish an image with multiple tags: ```yaml