Com.palantir.docker: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 94: Line 94:
</syntaxhighlight>
</syntaxhighlight>


For more details, see {{Internal|Gradle_Task#Task_Execution_Order|Task Execution Order}}
For more details, see: {{Internal|Gradle_Task#Task_Execution_Order|Task Execution Order}}


=Configuration=
=Configuration=

Revision as of 05:42, 24 February 2019

External

Internal

Overview

Latest Version

https://plugins.gradle.org/m2/com/palantir/docker/com.palantir.docker.gradle.plugin/

Example

buildscript {

    ext {

        ...
        dockerGradleVersion = '0.21.0'
    }

    repositories {

        mavenCentral()

        maven {
            
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        ...
        classpath("gradle.plugin.com.palantir.gradle.docker:gradle-docker:${dockerGradleVersion}")
    }
}

ext {
    
    dockerNamespace = "com.example/playground"
}

...

apply plugin: 'com.palantir.docker'

...

docker {
    
  dependsOn build

  // bootJar.baseName resolves to the artifact name, without version and extension information
  name "${dockerNamespace}/${bootJar.baseName}"

  dockerfile file('Dockerfile')

  // bootJar.archivePath resolves to the absolute path of the artifact file
  files bootJar.archivePath

  // bootJar.archiveName resolves to the artifact name, including version and extension
  buildArgs(['JAR_FILE': "${bootJar.archiveName}"])
}

The corresponding Dockerfile:

FROM openjdk:8-jdk-alpine
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
RUN apk --no-cache add curl bash bind-tools
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Execute

gradle clean docker

The command will build the container image and place into the local registry as "com.example/playground/myartifact" with the "latest" tag.

Declaring docker Tasks' Dependencies on other Tasks

In most cases it is necessary to first build the artifacts that will be package in the container image. The task dependency can be expressed as follows:

docker {
  ...
  dependsOn build
  ...
}

For more details, see:

Task Execution Order

Configuration

The plugin configuration is applied in a docker {} script block. The following parameters are available:

name

The container name. Includes the namespace and may include a tag. Example:

docker {
  ...
  name com.example/my-container:latest
  ...
}

name the name to use for this container, may include a tag

dockerfile

The dockerfile to use for building the image. It defaults to project.file('Dockerfile') and must be a file object.

docker {
  ...
  dockerfile file('Dockerfile')
  ...
}

files

An argument list of files to be included in the Docker build context.

buildArgs

An argument map of string to string which will set --build-arg arguments to the docker build command; defaults to empty, which results in no --build-arg parameters.