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
For new major Flink releases, once the release branch is created in the apache/flink repo, the corresponding
dev-x.y branch must be created in
.github/workflows/ci.ymlin the corresponding
dev-*branches: Make sure that the correct snapshot version is stated; for
dev-x.yit should point to
x.y-SNAPSHOT, while for
dev-masterit should point to the most recent snapshot version (i.e.
mastermapping each (supported) version to the right branch.
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.
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]
dev-masterbranch containing this commit.
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:
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.
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
masterhas each supported version being mapped to the right branch. Deprecated versions should have been removed.
Checklist for the
x.y/directories should be present)
Update Dockerfiles for x.y.z release
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.