LakeSail Flink Docker Images
LakeSail maintains a set of Docker images for Apache Flink. The images are based on the official Flink Docker images, and offer additional features such as Python support.
The LakeSail Flink images also contain a few utility libraries and scripts (e.g. a file copying utility) required by the LakeSail platform. Such utilities are designed to be lightweighted and general-purpose, and do not alter the behavior of the original Flink library by any means, so the images can be used as a drop-in replacement for the official images, even if you are not using the LakeSail platform.
We do not bundle additional connectors or plugins not vendored in the official Flink release, so the image size is comparable to the official one. This also enables customization where you can use the LakeSail Flink images as a base image to build your own images.
Usage
Use the following command to pull the LakeSail Flink images. Replace $TAG
with the desired tag.
docker pull ghcr.io/lakehq/flink:$TAG
Use the following line in Dockerfile to use an LakeSail Flink image as a base image. Replace $TAG
with the desired tag.
FROM ghcr.io/lakehq/flink:$TAG
Available Tags
Here is a list of available image tags and whether they are actively maintained. The first portion of the tag corresponds to the Flink version.
Image Tag | Active |
---|---|
1.17.1-python3.10 | No |
1.17.2-python3.10 | No |
1.18.1-python3.10 | Yes |
1.19.0-python3.11 | Yes |
All the images are multi-platform images, supporting the linux/amd64
and linux/arm64
platforms.
Note that we do not offer latest
tag for the images. Please use the specific version tags instead.
All inactive tags are kept for reference, but we recommend the users to upgrade to the active tags instead.
Notes on Tag Mutability
Active image tags are updated regularly by the image build workflow hosted in GitHub Actions, and their SHA digest may change over time. Inactive image tags will not receive update so their SHA digest will stay the same.
Once a tag is published, we will not update software versions of direct dependencies (e.g. Python) used in the image, except for security updates. The SHA digest change is typically due to changes in the manifest (e.g. image build timestamp) or backward-compatible upgrades to operating system packages. Therefore, it should be safe to use lakehq/flink:$TAG
instead of lakehq/flink@sha256:$DIGEST
without compatibility issues. it is not recommended to pin lakehq/flink
images to a specific SHA digest as we may clean up untagged images without notice.
Version Policy
We support the current and previous minor versions of Flink, which is in line with the Update Policy of Flink releases. We support only the latest patch version of each minor version. We may skip patch versions depending on our release schedule.
For example, if the current version of Flink is 1.18.0
, we will support 1.18.0
and some 1.17.z
image. Any 1.16.z
image will become inactive. After Flink releases its 1.18.1
version, our 1.18.0
image will become inactive once we publish a tag for 1.18.1
to our registry.
When creating a new image tag, we will use some recent version of dependency software (e.g. Python). Version upgrades of dependency software (e.g. Python minor/patch version change) will only happen when we release new tags corresponding to new Flink versions, unless there is a security issue.
Additional Resources
The Docker image source code is available at the lakehq/flink-docker-images repository on GitHub.
The Docker images are hosted on GitHub Container Registry. Please visit the package homepage for more details.