library/flinkfile in the
master branch of this repository serves as a pure publishing area for releases.
Development happens on the various
Pull requests for a specific version should be opened against the respective
dev-<version> branch. Pull requests for all versions, or for the next major Flink release, should be opened against the
dev-master branch is tested against nightly Flink snapshots for the next major Flink version. This allows us to develop features in tandem with Flink.
dev-1.x branches are tested against the latest corresponding minor Flink release, to ensure any changes we make are compatible with the currently used Flink version.
There are additional steps required when a new Flink major version (x.y.0) is released.
latesttag, so the
generate-stackbrew-library.shmust be updated
When a new release of Flink is available, the Dockerfiles in the
master branch should be updated and a new manifest sent to the Docker Library
The Dockerfiles are generated on the respective
dev-<version> branches, and copied over to the
master branch for publishing.
Updating the Dockerfiles involves the following steps:
dev-master(major release) branch of the respective release, e.g., dev-1.9
add-version.shwith the GPG key ID of the key used to sign the new release
Add GPG key for x.y.z release[example]
testing/run_travis_tests.shto test against the new minor version.
dev-masterbranch containing these commits.
add-version.shwith the appropriate arguments (
-r flink-major-version -f flink-full-version)
./add-version.sh -r 1.2 -f 1.2.1
rm -r 1.2, if the new Flink version is
Update Dockerfiles for x.y.z release[example]
masterbranch containing this commit.
Once the pull request has been merged, we can release the new docker images:
For publishing to DockerHub: apache/flink , you need to perform the following steps:
apache/flink. If not, request access by INFRA (see also:
docker login -u <username>.
./publish-to-dockerhub.sh. (Do not execute on the arm platform machine, such as Apple Silicon)
For publishing as an official image, a new manifest should be generated and a pull request opened on the Docker Library
./generate-stackbrew-library.shto output the new manifest (see note below regarding usage of this script)
official-imagesrepo, overwrite the file
library/flinkwith the new manifest
Update to Flink x.y.z[example]
A pull request can then be opened on the
official-images repo with the new manifest. [example]
Once the pull request has been merged (often within 1 business day), the new images will be available shortly thereafter.
For new major Flink releases, once the new image is available, the
dev-x.y branch must be created:
./add-version.sh -r x.y -f x.y.0
Checklist for the
add-version.shand committed with the message
Add GPG key for x.y.z release
./add-version.sh -r x.y -f x.y.zhas been run on the respective dev branch
Checklist for the
x.y/directories should be present)
Update Dockerfiles for x.y.z release
generate-stackbrew-library.shhas been updated with
[x.y]='latest'and committed with the message
Update latest image tag to x.y
generate-stackbrew-library.shand a pull request opened on the
official-imagesrepo with commit message
Update to Flink x.y.z
generate-stackbrew-library.sh is used to generate the library manifest file required for official Docker Hub images.
When the Dockerfiles in this repo are updated, the output of this script should replace the contents of
library/flink in the Docker official-images repo via a pull request.
Note: Since this script requires the
bashbrew binary and a compatible version of Bash, the script
generate-stackbrew-library-docker.sh can be used to invoke the script in a Docker container with the necessary dependencies.
./generate-stackbrew-library-docker.sh > /path/to/official-images/library/flink
Licensed under the Apache License, Version 2.0: https://www.apache.org/licenses/LICENSE-2.0
Apache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.