Using Custom Images

Attention

The internal structure of the official images is not considered a public, stable API and may change in the future.

Attention

For custom images we cannot guarantee compatibility between all possible base images, custom dependencies and Ververica Platform components. Therefore, we are only able to support custom images on a best-effort basis. Application Manager and Apache Flink themselves as well as their integration with Kubernetes remain supported.

Some users may have a requirement to build their own Docker images of Ververica Platform components. In this case we recommend using Docker’s multi-stage build feature to extract the Ververica Platform components from the official Ververica Platform images. Access to the official registry is only needed during build time of the images.

Examples

Application Manager

The following Dockerfile specifies a Centos7-based image for Application Manager 1.3.4.

FROM centos:centos7
RUN groupadd -r -g 102 appmanager \
    && adduser -r -u 102 -g appmanager appmanager
RUN yum install -y java-1.8.0-openjdk
RUN mkdir -p /etc/daplatform /var/lib/daplatform \
    && chown appmanager /etc/daplatform /var/lib/daplatform
COPY --from=registry.platform.data-artisans.net/dist/appmanager:1.3.4 /etc/daplatform /etc/daplatform
COPY --from=registry.platform.data-artisans.net/dist/appmanager:1.3.4 /appmanager-dependency-information.txt /
COPY --from=registry.platform.data-artisans.net/dist/appmanager:1.3.4 /appmanager.jar /appmanager.jar
USER appmanager:appmanager
VOLUME ["/etc/daplatform", "/var/lib/daplatform"]
WORKDIR /
ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-jar", "appmanager.jar"]
CMD ["server", "/etc/daplatform/config.yml"]

Note

The default configuration included in the package at /etc/daplatform/config.yml directs Application Manager to persist its data to the directory /var/lib/daplatform/appmanager. On systems such as Kubernetes, you must ensure this directory is a mounted persistent volume.

Apache Flink

The following Dockerfile specifies a Centos7-based image for Flink 1.7.1.

FROM centos:centos7
RUN groupadd -r flink \
    && adduser -r -g flink flink -d /flink
RUN yum -y install java-1.8.0-openjdk
ENV PATH=/flink/bin:$PATH
ENV JVM_ARGS="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
COPY --from=registry.platform.data-artisans.net/dist/flink:1.7.1-dap1-scala_2.11 --chown=flink:flink /flink /flink
USER flink:flink
WORKDIR /flink/bin
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 6123 8081