blob: e8eca851d53b3e6b67801a41ad23e30df340838e [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
FROM gradle:8.14-jdk17-noble AS builder
WORKDIR /app
COPY . .
RUN --mount=type=cache,target=/home/gradle/.gradle/caches gradle --no-daemon clean build -x check
FROM azul/zulu-openjdk:21-jre
ARG APP_VERSION=0.2.1-SNAPSHOT
ARG SPARK_UID=185
LABEL org.opencontainers.image.authors="Apache Spark project <dev@spark.apache.org>"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.ref.name="Apache Spark Kubernetes Operator"
LABEL org.opencontainers.image.version="${APP_VERSION}"
ENV SPARK_OPERATOR_HOME=/opt/spark-operator
ENV SPARK_OPERATOR_WORK_DIR=/opt/spark-operator/operator
ENV SPARK_OPERATOR_JAR=spark-kubernetes-operator.jar
WORKDIR $SPARK_OPERATOR_WORK_DIR
RUN groupadd --system --gid=$SPARK_UID spark && \
useradd --system --home-dir $SPARK_OPERATOR_HOME --uid=$SPARK_UID --gid=spark spark && \
chown -R spark:spark $SPARK_OPERATOR_HOME
COPY --from=builder --chown=spark:spark /app/spark-operator/build/libs/spark-kubernetes-operator-$APP_VERSION-all.jar $SPARK_OPERATOR_JAR
COPY --from=builder --chown=spark:spark /app/build-tools/docker/docker-entrypoint.sh .
USER spark
ENTRYPOINT ["/opt/spark-operator/operator/docker-entrypoint.sh"]
CMD ["help"]