commit | 9e0041a2c9dace4bf3f32815e3e24e24385b179b | [log] [tgz] |
---|---|---|
author | morazow <m.orazow@gmail.com> | Thu Feb 29 09:30:14 2024 +0100 |
committer | Matthias Pohl <matthias.pohl@aiven.io> | Wed Mar 27 15:50:53 2024 +0100 |
tree | 6dafe6487d7e05e6896143618b3b474364a7a81b | |
parent | 20017e8f0e81d54fe74c0f9f6a3a988ea609be8f [diff] |
[FLINK-34419][docker] Added support of JDK 17 & 21 for Flink 1.18+ versions
This repo contains Dockerfiles for building Docker images for Apache Flink, and are used to build the “official” flink
images hosted on Docker Hub (reviewed and build by Docker), as well as the images published on apache/flink
DockerHub (maintained by Flink committers).
These Dockerfiles are maintained by the Apache Flink community, but the Docker community is responsible for building and hosting the images on Docker Hub.
official-images
repositorylibrary/flink
file in the official-images
repository.The master
branch of this repository serves as a pure publishing area for releases.
Development happens on the various dev-X
branches.
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.
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 apache/flink-docker
:
dev-master
.github/workflows/ci.yml
in the corresponding dev-*
branches: Make sure that the correct snapshot version is stated; for dev-x.y
it should point to x.y-SNAPSHOT
, while for dev-master
it should point to the most recent snapshot version (i.e. x.(y+1)-SNAPSHOT
)..github/workflows/snapshot.yml
in master
mapping each (supported) version to the right branch.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.
The 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 official-images
repo.
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-x.y
(minor release)/dev-master
(major release) branch of the respective release, e.g., dev-1.9add-version.sh
with the GPG key ID of the key used to sign the new releaseAdd GPG key for x.y.z release
[example]dev-x.y
/dev-master
branch containing this commit.add-version.sh
with the appropriate arguments (-r flink-major-version -f flink-full-version
)./add-version.sh -r 1.2 -f 1.2.1
master
branchrm -r 1.2
, if the new Flink version is 1.2.1
dev-x.y
/dev-master
branch to master
Update Dockerfiles for x.y.z release
[example]master
branch 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
: 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 official-images
repo.
./generate-stackbrew-library.sh
to output the new manifest (see note below regarding usage of this script)official-images
repo, overwrite the file library/flink
with the new manifestUpdate 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 dev
branch:
add-version.sh
and committed with the message Add GPG key for x.y.z release
./add-version.sh -r x.y -f x.y.z
has been run on the respective dev branchChecklist for the master
branch:
.github/workflows/snapshot.yml
in master
has each supported version being mapped to the right branch. Deprecated versions should have been removed.x.y/
directories should be present)Update Dockerfiles for x.y.z release
generate-stackbrew-library.sh
and a pull request opened on the official-images
repo 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 executed on developer's local machine and it will invoke the script in a Docker container, which will be pulled from the internet automatically, with the necessary dependencies.
Example(official-images repo has been cloned locally):
./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.