Docker packaging for apacheflink

Clone this repo:

Branches

  1. 7aa3cc1 [hotfix] Remove deprecated 1.8 Dockerfiles by Yu Li · 5 days ago master
  2. 1cea57c [FLINK-15978] Add GPG key and Dockerfiles for 1.10.0 release by Yu Li · 5 days ago
  3. dfe8ffe [FLINK-15978] Update the latest version to 1.10 by Yu Li · 6 days ago
  4. 346809e [FLINK-15978] Update Dockerfiles for 1.10.0 release by Yu Li · 6 days ago
  5. 4c4d418 [FLINK-15978] Add GPG key for 1.10.0 release by Yu Li · 6 days ago

Apache Flink Docker Images

This repo contains Dockerfiles for building Docker images for Apache Flink, and are used to build the “official” flink images hosted on Docker Hub.

These Dockerfiles are maintained by the Apache Flink community, but the Docker community is responsible for building and hosting the images on Docker Hub.

Build Status

Flink Docker image lifecycle

Workflow for new Flink releases

Note for new Flink minor (x.y.0) releases

When a new Flink minor version (x.y.0) is released, the aliases array in generate-stackbrew-library.sh must be updated so that the images for the new release are tagged latest.

Release workflow

When a new release of Flink is available, the Dockerfiles in this repo should be updated and a new manifest sent to the Docker Library official-images repo.

Updating the Dockerfiles involves 3 steps:

  1. Update add-version.sh with the GPG key ID of the key used to sign the new release
    • Commit this change with message Add GPG key for x.y.z release [example]
  2. Remove any existing Dockerfiles from the same minor version
    • e.g. rm -r 1.2, if the new Flink version is 1.2.1
  3. Run add-version.sh with the appropriate arguments (-r flink-minor-version -f flink-full-version)
    • e.g. ./add-version.sh -r 1.2 -f 1.2.1
    • Commit these changes with message Update Dockerfiles for x.y.z release [example]

A pull request can then be opened on this repo with the changes.

Once the pull request has been merged, a new manifest should be generated and a pull request opened on the Docker Library official-images repo.

  1. Run ./generate-stackbrew-library.sh to output the new manifest (see note below regarding usage of this script)
  2. In a clone of the official-images repo, overwrite the file library/flink with the new manifest
  3. Commit this change with message 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.

Release checklist

  • [ ] The GPG key ID of the key used to sign the release has been added to add-version.sh and committed with the message Add GPG key for x.y.z release
  • [ ] For new patch version releases (x.y.z), any existing generated files for the same minor version have been removed with rm -r x.y/
  • [ ] ./add-version.sh -r x.y -f x.y.z has been run, and the newly-generated files committed with the message Update Dockerfiles for x.y.z release
  • [ ] For new minor version releases (x.y.0), the aliases array in generate-stackbrew-library.sh has been updated with [x.y]='latest'
  • [ ] A pull request with the above changes has been opened on this repo and merged
  • [ ] The new library manifest has been generated with generate-stackbrew-library.sh and a pull request opened on the official-images repo with commit message Update to Flink x.y.z

Stackbrew Manifest

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.

Example:

./generate-stackbrew-library-docker.sh > /path/to/official-images/library/flink

License

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.