| commit | 61ff8a04ee483930d1da5b585c5101d7ffc500a0 | [log] [tgz] |
|---|---|---|
| author | Yun Gao <gaoyunhenhao@gmail.com> | Fri Apr 29 11:58:29 2022 +0800 |
| committer | Yun Gao <gaoyunhenhao@gmail.com> | Fri Apr 29 11:58:29 2022 +0800 |
| tree | a55a2369394956e439188bfb18dc70b249452b94 | |
| parent | 72ec686594f301d582f094d7a149ae007e6e2a5f [diff] |
Merge adjacent RUN commands to avoid too much levels
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.
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.
latest tag, so the aliases array in generate-stackbrew-library.sh must be updatedWhen 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]testing/run_travis_tests.sh to test against the new minor version.dev-x.y/dev-master branch containing these commits.add-version.sh with the appropriate arguments (-r flink-major-version -f flink-full-version)./add-version.sh -r 1.2 -f 1.2.1master branchrm -r 1.2, if the new Flink version is 1.2.1dev-x.y/dev-master branch to masterUpdate 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. 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 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.
For new major Flink releases, once the new image is available, the dev-x.y branch must be created:
dev-mastertesting/run_travis_tests.sh:./add-custom.sh with ./add-version.sh -r x.y -f x.y.0dev-master with dev-x.yChecklist 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:
x.y/ directories should be present)Update Dockerfiles for x.y.z releasealiases array in generate-stackbrew-library.sh has been updated with [x.y]='latest' and committed with the message Update latest image tag to x.ygenerate-stackbrew-library.sh and a pull request opened on the official-images repo with commit message Update to Flink x.y.zgenerate-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.
Example:
./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.