170 lines
3.0 KiB
Markdown
170 lines
3.0 KiB
Markdown
---
|
|
date: 2016-01-01T00:00:00+00:00
|
|
title: Docker
|
|
author: drone-plugins
|
|
tags: [ publish, docker ]
|
|
repo: drone-plugins/drone-docker
|
|
image: plugins/drone
|
|
---
|
|
|
|
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:
|
|
|
|
```yaml
|
|
pipeline:
|
|
docker:
|
|
image: plugins/docker
|
|
username: kevinbacon
|
|
password: pa55word
|
|
email: kevin.bacon@mail.com
|
|
repo: foo/bar
|
|
tags: latest
|
|
```
|
|
|
|
Example configuration using multiple tags:
|
|
|
|
```diff
|
|
pipeline:
|
|
docker:
|
|
image: plugins/docker
|
|
repo: foo/bar
|
|
- tags: latest
|
|
+ tags:
|
|
+ - latest
|
|
+ - 1.0.1
|
|
+ - 1.0
|
|
```
|
|
|
|
Example configuration using build arguments:
|
|
|
|
```diff
|
|
publish:
|
|
docker:
|
|
image: plugins/docker
|
|
repo: foo/bar
|
|
+ build_args:
|
|
+ - HTTP_PROXY=http://yourproxy.com
|
|
```
|
|
|
|
Example configuration using alternate Dockerfile:
|
|
|
|
```diff
|
|
publish:
|
|
docker:
|
|
image: plugins/docker
|
|
repo: foo/bar
|
|
- dockerfile: Dockerfile
|
|
+ dockerfile: path/to/Dockerfile
|
|
```
|
|
|
|
Example configuration using a custom registry:
|
|
|
|
```diff
|
|
pipeline:
|
|
docker:
|
|
image: plugins/docker
|
|
- repo: foo/bar
|
|
+ repo: index.company.com/foo/bar
|
|
+ registry: index.company.com
|
|
```
|
|
|
|
Example configuration using inline credentials:
|
|
|
|
```diff
|
|
pipeline:
|
|
docker:
|
|
image: plugins/docker
|
|
+ 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
|
|
```
|
|
|
|
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
|