save
和
load
Bitbucket Pipelines' artifacts
首先,我稍微更改了标记方案:
configure<DockerExtension> {
configure(this.getProperty("javaApplication"), closureOf<DockerJavaApplication> {
baseImage = "openjdk:8-jre-alpine"
tag = "${name}:${System.getenv("DOCKER_TAG")}"
})
}
因此,我依赖于一个环境变量,而不是UTC时间戳
DOCKER_TAG
然后,定义“构建docker”步骤如下:
- step: &build-docker
name: Build Docker images
image:
name: openjdk:8
services:
- docker
script:
- export DOCKER_TAG=${BITBUCKET_BUILD_NUMBER}
- ./gradlew dockerBuildImage
- docker save
--output images.tar
forklift-1:${DOCKER_TAG}
forklift-2:${DOCKER_TAG}
forklift-3:${DOCKER_TAG}
forklift-3:${DOCKER_TAG}
artifacts:
- images.tar
caches:
- gradle-wrapper
- gradle
我可以使用构建编号作为标记,但是可以提供任何值。
- step: &publish-docker
name: Publish Docker images
image:
name: docker
services:
- docker
script:
- docker load --input images.tar
- docker image ls
- docker push â¦
这是有效的,因为
docker save
生成标准输出流的tarred存储库。包含所有父层,
和所有标签+版本