gradle-docker
gradle-docker copied to clipboard
Better way to change base docker repo at command line time
In my config I have something like
docker {
name "docker.awesome.repository/${groupName}/${distName}:${project.version}"
tags 'latest', 'snapshot'
files tasks.distTar.outputs
}
on develop I would like to publish versioned docker images, but to a sandbox repository (like sandbox.docker.awesome.repository, not the main one.
Ideally I would do this without writing janky "is this a release build" code in gradle such as
def isRelease = ... // versioning logic here
def dockerRepoPrefix = (isRelease ? '' : 'sandbox.')
docker {
name "${dockerRepoPrefix}docker.awesome.repository/${groupName}/${distName}:${project.version}"
tags 'latest', 'snapshot'
files tasks.distTar.outputs
}
Instead it would be cool in my circle.yml to do something like
deployment:
develop:
branch: develop
owner: tomp
commands:
- ./gradlew -i dockerPushSnapshot dockerPush --repo='sandbox.docker.awesome.repository'
release:
tag: /[0-9]+(\.[0-9]+)+(-rc[0-9]+)?(-alpha[0-9]+)?/
owner: tomp
commands:
- ./gradlew -i dockerPushLatest dockerPush
I think you can do this today, with environment variables?
hmmm I quickly scanned code and read readme to no avail wrt environment variables
You can set your variables in circle and then do:
def dockerRepo = "${System.env.DOCKER_REPO}"
docker {
name "${dockerRepo}/${groupName}/..."
..
}