Untitled

mail@pastecode.io avatarunknown
plain_text
2 months ago
1.6 kB
0
Indexable
Never
# Use a smaller base image for the build stage
FROM alpine:3.14 as builder

# Install necessary build dependencies
RUN apk --no-cache add \
    openjdk8 \
    wget \
    unzip \
    bash

ENV ZEPPELIN_HOME="/opt/zeppelin" \
    LANG=en_US.UTF-8 \
    LC_ALL=en_US.UTF-8 \
    JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk

# Download and extract Zeppelin binary
RUN mkdir -p ${ZEPPELIN_HOME} && \
    wget -nv -O /tmp/zeppelin-${Z_VERSION}-bin-all.tgz https://archive.apache.org/dist/zeppelin/zeppelin-${Z_VERSION}/zeppelin-${Z_VERSION}-bin-all.tgz && \
    tar --strip-components=1 -zxvf /tmp/zeppelin-${Z_VERSION}-bin-all.tgz -C ${ZEPPELIN_HOME} && \
    rm -f /tmp/zeppelin-${Z_VERSION}-bin-all.tgz

# Use a smaller base image for the final stage
FROM alpine:3.14

LABEL maintainer="Apache Software Foundation <dev@zeppelin.apache.org>"

ENV Z_VERSION="0.10.0" \
    ZEPPELIN_HOME="/opt/zeppelin" \
    LANG=en_US.UTF-8 \
    LC_ALL=en_US.UTF-8 \
    JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk \
    ZEPPELIN_ADDR="0.0.0.0"

# Install necessary runtime dependencies
RUN apk --no-cache add \
    tini \
    openjdk8 \
    bash

# Copy required artifacts from the builder stage
COPY --from=builder ${ZEPPELIN_HOME}/ ${ZEPPELIN_HOME}/

# Set up necessary directories and permissions
RUN mkdir -p ${ZEPPELIN_HOME}/logs ${ZEPPELIN_HOME}/run ${ZEPPELIN_HOME}/webapps && \
    chmod -R 775 "${ZEPPELIN_HOME}/logs" "${ZEPPELIN_HOME}/run" "${ZEPPELIN_HOME}/notebook" "${ZEPPELIN_HOME}/conf" && \
    chmod 775 ${ZEPPELIN_HOME}

USER 1000

EXPOSE 8080

ENTRYPOINT [ "/usr/bin/tini", "--" ]
WORKDIR ${ZEPPELIN_HOME}
CMD ["bin/zeppelin.sh"]