{"id":13571454,"url":"https://github.com/apache/flink-docker","last_synced_at":"2025-05-15T12:05:38.106Z","repository":{"id":37395409,"uuid":"237409088","full_name":"apache/flink-docker","owner":"apache","description":"Docker packaging for Apache Flink","archived":false,"fork":false,"pushed_at":"2025-04-29T05:41:10.000Z","size":522,"stargazers_count":343,"open_issues_count":3,"forks_count":197,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-05-10T17:16:28.601Z","etag":null,"topics":["docker","flink"],"latest_commit_sha":null,"homepage":"https://flink.apache.org/","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-31T10:36:54.000Z","updated_at":"2025-05-09T18:59:30.000Z","dependencies_parsed_at":"2023-02-16T08:30:47.005Z","dependency_job_id":"15227952-d95f-43f5-8147-32e75a839377","html_url":"https://github.com/apache/flink-docker","commit_stats":{"total_commits":287,"total_committers":53,"mean_commits":5.415094339622642,"dds":0.5226480836236933,"last_synced_commit":"5fe5cf8669a4e294b0767c4a0ec4e56a5b6627cf"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fflink-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fflink-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fflink-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fflink-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/flink-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253850536,"owners_count":21973662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","flink"],"created_at":"2024-08-01T14:01:02.151Z","updated_at":"2025-05-15T12:05:33.094Z","avatar_url":"https://github.com/apache.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"Apache Flink Docker Images\n==========================\n\nThis repo contains Dockerfiles for building Docker images for Apache Flink, and are used to build\nthe \"official\" [`flink`](https://hub.docker.com/_/flink) images hosted on Docker Hub (reviewed and build by Docker), as well as the images published on [`apache/flink` DockerHub](https://hub.docker.com/r/apache/flink) (maintained by Flink committers).\n\nThese Dockerfiles are maintained by the Apache Flink community, but the Docker community is\nresponsible for building and hosting the images on Docker Hub.\n\n[![Build Status](https://travis-ci.org/apache/flink-docker.svg?branch=master)](https://travis-ci.org/apache/flink-docker)\n\n\nFlink Docker image lifecycle\n----------------------------\n\n* For more information about how changes in this repo are reflected on Docker Hub, see [the \"An\n  image's source changed in Git, now what?\" FAQ entry](\n  https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what)\n* For outstanding changes to the Apache Flink images on Docker Hub, see [PRs with the\n  \"library/flink\" label on the `official-images` repository](\n  https://github.com/docker-library/official-images/labels/library%2Fflink)\n* For the \"source of truth\" for which Dockerfile and revision is reflected in the Apache Flink\n  images on Docker Hub, see [the `library/flink` file in the `official-images` repository](\n  https://github.com/docker-library/official-images/blob/master/library/flink).\n\n\nDevelopment workflow\n----------------------------\n\nThe `master` branch of this repository serves as a pure publishing area for releases.\n\nDevelopment happens on the various `dev-X` branches.\n\nPull requests for a specific version should be opened against the respective `dev-\u003cversion\u003e` branch.\nPull requests for all versions, or for the next major Flink release, should be opened against the `dev-master` branch.\n\nFor new major Flink releases, once the release branch is created in the [apache/flink](https://github.com/apache/flink/) repo, the corresponding `dev-x.y` \nbranch must be created in `apache/flink-docker`:\n1. Create the branch based on `dev-master`\n2. Update `.github/workflows/ci.yml` in the corresponding `dev-*` branches: Make sure that the correct \n   snapshot version is stated; for `dev-x.y` it should point to `x.y-SNAPSHOT`, while for `dev-master` \n   it should point to the most recent snapshot version (i.e. `x.(y+1)-SNAPSHOT`).\n3. Update `.github/workflows/snapshot.yml` in `master` mapping each (supported) version to the right branch.\n\n### CI\n\nThe `dev-master` branch is tested against nightly Flink snapshots for the next major Flink version. This allows us to\ndevelop features in tandem with Flink.\n\nThe `dev-1.x` branches are tested against the latest corresponding minor Flink release, to ensure any changes we make\nare compatible with the currently used Flink version.\n\nWorkflow for new Flink releases\n-------------------------------\n\n### Notes for new Flink major (x.y.0) releases\n\nThere are additional steps required when a new Flink major version (x.y.0) is released.\n\n* Since only the current and previous major versions of Flink are supported, the Dockerfiles for\n  older versions must be removed when adding the new version to this repo\n\n### Release workflow\n\nWhen a new release of Flink is available, the Dockerfiles in the `master` branch should be updated and a new\nmanifest sent to the Docker Library [`official-images`](\nhttps://github.com/docker-library/official-images) repo.\n\nThe Dockerfiles are generated on the respective `dev-\u003cversion\u003e` branches, and copied over to the `master` branch for\npublishing.\n\nUpdating the Dockerfiles involves the following steps:\n\n1. Generate the Dockerfiles\n    * Checkout the `dev-x.y`(minor release)/`dev-master`(major release) branch of the respective release, e.g., dev-1.9\n    * Update `add-version.sh` with the GPG key ID of the key used to sign the new release\n        * Be sure to use the full fingerprint of the GPG key (as shown in the example below), as the official images require this.\n        * Commit this change with message `Add GPG key for x.y.z release` \u003csup\u003e\\[[example](\n            https://github.com/apache/flink-docker/commit/94845f46c0f0f2de80d4a5ce309db49aff4655d0)]\u003c/sup\u003e\n    * Create a pull request against the `dev-x.y`/`dev-master` branch containing this commit.\n    * Run `add-version.sh` with the appropriate arguments (`-r flink-major-version -f flink-full-version`)\n        * e.g. `./add-version.sh -r 1.2 -f 1.2.1`\n2. Update Dockerfiles on the the `master` branch\n    * Remove any existing Dockerfiles from the same major version\n        * e.g. `rm -r 1.2`, if the new Flink version is `1.2.1`\n    * Remove any not-supported versions (i.e. versions that are not meant to be released anymore)\n    * Copy the generated Dockerfiles from the `dev-x.y`/`dev-master` branch to `master`\n    * Commit the changes with message `Update Dockerfiles for x.y.z release` \u003csup\u003e\\[[example](\n      https://github.com/apache/flink-docker/commit/5920fd775ca1a8d03ee959d79bceeb5d6e8f35a1)]\u003c/sup\u003e\n    * Create a pull request against the `master` branch containing this commit.\n\nOnce the pull request has been merged, we can release the new docker images:\n\nFor **publishing to DockerHub: apache/flink** , you need to perform the following steps:\n\n1. Make sure that you are authenticated with your Docker ID, and that your Docker ID has access to `apache/flink`: `docker login -u \u003cusername\u003e`\n   1. If you do not have access, you should seek help via the mailing list. \n      We have a limited number of seats which are full, see [INFRA-23623](https://issues.apache.org/jira/browse/INFRA-23623) for more information. See also [INFRA-21276](https://issues.apache.org/jira/browse/INFRA-21276).\n2. Generate and upload the new images: `./publish-to-dockerhub.sh`. (Do not execute on the arm platform machine, such as Apple Silicon)\n\nFor **publishing as an official image**, a new manifest should be generated and a pull request opened\non the Docker Library [`official-images`](https://github.com/docker-library/official-images) repo.\n\n1. Run `./generate-stackbrew-library.sh` to output the new manifest (see note [below](\n   #stackbrew-manifest) regarding usage of this script)\n2. In a clone of the [`official-images`](https://github.com/docker-library/official-images) repo,\n   overwrite the file `library/flink` with the new manifest\n3. Commit this change with message `Update to Flink x.y.z` \u003csup\u003e\\[[example](\n   https://github.com/docker-library/official-images/commit/396d6cfa03c4e6b41d3ba5b7c402d7b25f1db415\n   )]\u003c/sup\u003e\n\nA pull request can then be opened on the [`official-images`](\nhttps://github.com/docker-library/official-images) repo with the new manifest. \u003csup\u003e\\[[example](\nhttps://github.com/docker-library/official-images/pull/10665)]\u003c/sup\u003e\n\nOnce the pull request has been merged (often within 1 business day), the new images will be\navailable shortly thereafter.\n\n### Release checklist\n\nChecklist for the `dev` branch:\n- [ ] The GPG key ID of the key used to sign the release has been added to `add-version.sh` and\n      committed with the message `Add GPG key for x.y.z release`\n- [ ] `./add-version.sh -r x.y -f x.y.z` has been run on the respective dev branch\n\nChecklist for the `master` branch:\n- [ ] `.github/workflows/snapshot.yml` in `master` has each supported version being mapped to the right branch.\n  Deprecated versions should have been removed.\n- [ ] _(new major releases only)_ any unsupported Flink major version Dockerfiles have been removed\n      (only two `x.y/` directories should be present)\n- [ ] _(new minor releases only)_ any existing generated files for the same major version have been\n      removed\n- [ ] The updated Dockerfiles have been committed with the message `Update Dockerfiles for x.y.z release`\n- [ ] A pull request with the above changes has been opened on this repo and merged\n- [ ] The new library manifest has been generated with `generate-stackbrew-library.sh` and a pull\n      request opened on the `official-images` repo with commit message `Update to Flink x.y.z`\n\n\n### Stackbrew Manifest\n\n`generate-stackbrew-library.sh` is used to generate the library manifest file required for official\nDocker Hub images.\n\nWhen the Dockerfiles in this repo are updated, the output of this script should replace the contents\nof `library/flink` in the Docker [official-images](https://github.com/docker-library/official-images\n) repo via a pull request.\n\nNote: Since this script requires the `bashbrew` binary and a compatible version of Bash, the script\n`generate-stackbrew-library-docker.sh` can be executed on developer's local machine and it will invoke \nthe script in a Docker container, which will be pulled from the internet automatically, with the necessary dependencies.\n\nExample([official-images](https://github.com/docker-library/official-images) repo has been cloned locally):\n\n    ./generate-stackbrew-library-docker.sh \u003e /path/to/official-images/library/flink\n\n\nLicense\n-------\n\nLicensed under the Apache License, Version 2.0: https://www.apache.org/licenses/LICENSE-2.0\n\nApache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either\nregistered trademarks or trademarks of The Apache Software Foundation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fflink-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fflink-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fflink-docker/lists"}