82 lines
2 KiB
Text
82 lines
2 KiB
Text
|
= Gradle Plugin for Docker
|
||
|
|
||
|
This repository provides a Gradle plugin for working with Docker.
|
||
|
|
||
|
The plugin contains tasks for building and pushing
|
||
|
images based on a simple configuration block that specifies the container
|
||
|
name, the `Dockerfile`, task dependencies, and any additional file resources
|
||
|
required for the Docker build; tasks for populating placeholders in a
|
||
|
docker-compose template file with image versions resolved from
|
||
|
dependencies; and tasks for starting, stopping, and cleaning
|
||
|
up a named container based on a specified image
|
||
|
|
||
|
== Documentation
|
||
|
|
||
|
=== Tasks
|
||
|
|
||
|
There are two task types
|
||
|
|
||
|
* `DockerBuildTask` : task type for building a docker image
|
||
|
* `DockerPushTask` : task type for pushing a docker image
|
||
|
|
||
|
Apply the plugin using standard gradle convention:
|
||
|
|
||
|
[source]
|
||
|
----
|
||
|
plugins {
|
||
|
id 'org.xbib.gradle.plugin.docker' version '<version>'
|
||
|
}
|
||
|
----
|
||
|
|
||
|
=== Extensions
|
||
|
|
||
|
The extension with name `docker` has the following attributes:
|
||
|
|
||
|
- `enabled` if the task is enabled or not, default is `true`
|
||
|
- `executableName` the executable name of the docker binary, default is `docker`
|
||
|
- `registry` the DNS name of the registry, default is empty
|
||
|
- `imageName` the docker image name, default is empty
|
||
|
- `tag` the docker image tag, default is empty (which means `latest` in docker terminology)
|
||
|
|
||
|
[source]
|
||
|
----
|
||
|
docker {
|
||
|
enabled = true
|
||
|
registry = 'myhost.mydomain'
|
||
|
imageName = 'myimage'
|
||
|
tag = 'mytag'
|
||
|
}
|
||
|
----
|
||
|
|
||
|
=== Build a Docker image
|
||
|
|
||
|
To build a docker image, run a task with type `DockerBuildTask`.
|
||
|
|
||
|
==== Example
|
||
|
|
||
|
[source]
|
||
|
----
|
||
|
plugins {
|
||
|
id 'distribution'
|
||
|
id 'org.xbib.gradle.plugin.docker'
|
||
|
}
|
||
|
|
||
|
task buildDockerImage(type: DockerBuildTask, group: 'docker') {
|
||
|
registry = 'hub.docker.com'
|
||
|
imageName = 'username/my-app'
|
||
|
tag = 'mytag'
|
||
|
dockerfile {
|
||
|
add(tasks.distTar.outputs.files.singleFile, '/')
|
||
|
}
|
||
|
}
|
||
|
----
|
||
|
|
||
|
=== Push a Docker image
|
||
|
|
||
|
To push an image to a docker image repository, run a task with tyep `DockerPushTask`
|
||
|
|
||
|
|
||
|
== License
|
||
|
|
||
|
This plugin is made available under the http://www.apache.org/licenses/LICENSE-2.0[Apache 2.0 License].
|