FROM public.ecr.aws/docker/library/flink:1.20.0-scala_2.12-java17 # Set working directory WORKDIR /opt/flink # Set environment variables for Flink mini-cluster ENV FLINK_HOME /opt/flink ENV PATH=$FLINK_HOME/bin:$PATH # Expose necessary ports for the Flink UI (JobManager) and job manager EXPOSE 8081 6123 COPY ./start-cluster.sh /opt/flink/bin/start-cluster.sh RUN chmod +x /opt/flink/bin/start-cluster.sh RUN wget -q https://repo1.maven.org/maven2/org/apache/flink/flink-connector-kafka/3.4.0-1.20/flink-connector-kafka-3.4.0-1.20.jar -P /opt/flink/lib/ RUN wget -q https://repo1.maven.org/maven2/org/apache/kafka/kafka-clients/3.9.0/kafka-clients-3.9.0.jar -P /opt/flink/lib/ RUN wget -q https://repo1.maven.org/maven2/org/apache/flink/flink-avro/1.20.0/flink-avro-1.20.0.jar -P /opt/flink/lib/ RUN wget -q https://repo1.maven.org/maven2/org/apache/flink/flink-avro-confluent-registry/1.20.0/flink-avro-confluent-registry-1.20.0.jar -P /opt/flink/lib/ # Command to start Flink JobManager and TaskManager in a mini-cluster setup CMD ["bin/start-cluster.sh"]