Я использую конвейеры Bitbucket для создания образов Docker с помощью Gradle.Вот моя сборка:
definitions:
steps:
- step: &build-docker
name: Build Docker images
image:
name: openjdk:8
services:
- docker
script:
- ./gradlew dockerBuildImage
- docker image ls
caches:
- gradle-wrapper
- gradle
- docker
- step: &publish-docker
name: Publish Docker images
image:
name: docker
services:
- docker
script:
- docker image ls
caches:
- docker
pipelines:
default:
- step: *build-docker
- step: *publish-docker
Мой build.gradle.kts
настроен для тегирования изображений с временными метками UTC:
configure<DockerExtension> {
configure(this.getProperty("javaApplication"), closureOf<DockerJavaApplication> {
baseImage = "openjdk:8-jre-alpine"
tag = "${name}:${Instant.now().epochSecond}"
})
}
Когда я запускаю задачу dockerBuildImage
локально, я вижу своиtagged images:
$docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
…
forklift-1 1540454741 93fd78260bd1 5 weeks ago 105MB
forklift-2 1540454741 3c8e4e191fd3 5 weeks ago 105MB
forklift-3 1540454741 1e80caffd59e 5 weeks ago 105MB
forklift-4 1540454741 0e3d9c513144 5 weeks ago 105MB
…
Вывод шага "build-docker" выглядит следующим образом:
REPOSITORY TAG IMAGE ID CREATED SIZE
forklift-1 1543511971 13146b26fe19 1 second ago 105MB
forklift-2 1543511971 7581987997aa 3 seconds ago 105MB
forklift-3 1543511971 a6ef74a8530e 6 seconds ago 105MB
forklift-4 1543511970 a7087154d731 10 seconds ago 105MB
<none> <none> cfc622dd7b3c 3 hours ago 105MB
<none> <none> f17e20778baf 3 hours ago 105MB
<none> <none> 75cc06f4b5ee 3 hours ago 105MB
<none> <none> 1762b4f89680 3 hours ago 105MB
openjdk 8-jre-alpine 2e01f547f003 5 weeks ago 83MB
Но вывод второго шага не имеет тегов, хотя размерыизображений примерно эквивалентны:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> cfc622dd7b3c 3 hours ago 105MB
<none> <none> f17e20778baf 3 hours ago 105MB
<none> <none> 75cc06f4b5ee 3 hours ago 105MB
<none> <none> 1762b4f89680 3 hours ago 105MB
Где потеряны теги ?
Обратите внимание, что некоторые идентификаторы изображений со второго шага (docker image ls
)Похоже, что те же, что были напечатаны на первом шаге.
PS Я знаю, что если мне нужны теги (например, для публикации), я могу просто выполнить сборку и публикацию за один шаг.