# syntax=docker/dockerfile:1
FROM maven:3.8-openjdk-11-slim AS build-base
RUN mkdir -p /root/.m2
ADD settings.xml /root/.m2/
RUN mkdir -p /preload/executor
RUN mkdir -p /preload/SQSSource

WORKDIR /preload/executor
ADD ./executor/pom.xml .
RUN mvn verify clean --fail-never

WORKDIR /preload/SQSSource
ADD ./sources/SQSSource/pom.xml .
RUN mvn verify clean --fail-never

FROM build-base AS executor
RUN mkdir /app
WORKDIR /app
COPY ./executor /app
RUN mvn clean package -DskipTests

FROM build-base AS connector
RUN mkdir /app
WORKDIR /app
COPY ./sources/SQSSource /app
RUN mvn clean package -DskipTests

FROM flink:1.13.0-scala_2.11-java11
USER root
RUN sed -i 's/echo gosu flink/echo gosu root/g' /docker-entrypoint.sh
RUN sed -i 's/echo su-exec flink/echo su-exec root/g' /docker-entrypoint.sh
RUN chown -R root:root /opt/flink
RUN mkdir -p $FLINK_HOME/plugins/s3-fs-presto \
    && wget -P $FLINK_HOME/plugins/s3-fs-presto/ https://repo1.maven.org/maven2/org/apache/flink/flink-s3-fs-presto/1.13.0/flink-s3-fs-presto-1.13.0.jar \ 
    && wget -P $FLINK_HOME/lib/ https://repo1.maven.org/maven2/org/apache/flink/flink-connector-jdbc_2.11/1.13.1/flink-connector-jdbc_2.11-1.13.1-sources.jar \ 
    && wget -P $FLINK_HOME/lib/ https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar 
COPY --from=executor /app/target/executor-1.0-SNAPSHOT-jar-with-dependencies.jar $FLINK_HOME/lib/executor-1.0.jar
COPY --from=connector /app/target/sqs-1.0-SNAPSHOT.jar $FLINK_HOME/lib/sqs-1.0-SNAPSHOT.jar
