forked from kube-reporting/presto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.rhel
85 lines (67 loc) · 3.9 KB
/
Dockerfile.rhel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
FROM rhel7:7-released AS build
ENV PRESTO_VERSION 315.0
ENV RH_PRESTO_PATCH_VERSION 00003
ENV RH_PRESTO_VERSION ${PRESTO_VERSION}.0.redhat-${RH_PRESTO_PATCH_VERSION}
ENV RH_PRESTO_BREW_DIR ${PRESTO_VERSION}.0.redhat_${RH_PRESTO_PATCH_VERSION}
ENV PRESTO_SERVER_OUT /build/presto-server/target/presto-server-${PRESTO_VERSION}
ENV PRESTO_CLI_OUT /build/presto-cli/target/presto-cli-${PRESTO_VERSION}-executable.jar
ARG PRESTO_CLI_JAR_URL=http://download.eng.bos.redhat.com/brewroot/packages/io.prestosql-presto-root/${RH_PRESTO_BREW_DIR}/1/maven/io/prestosql/presto-cli/${RH_PRESTO_VERSION}/presto-cli-${RH_PRESTO_VERSION}-executable.jar
ARG PRESTO_SERVER_URL=http://download.eng.bos.redhat.com/brewroot/packages/io.prestosql-presto-root/${RH_PRESTO_BREW_DIR}/1/maven/io/prestosql/presto-server/${RH_PRESTO_VERSION}/presto-server-${RH_PRESTO_VERSION}.tar.gz
RUN mkdir -p /build /build/presto-server/target /build/presto-cli/target
RUN set -x; curl -fSLs \
$PRESTO_SERVER_URL \
-o /tmp/presto-server.tar.gz
RUN set -x; tar -xvf /tmp/presto-server.tar.gz -C /tmp \
&& mv /tmp/presto-server-${RH_PRESTO_VERSION} \
$PRESTO_SERVER_OUT
RUN set -x; curl -fSLs \
$PRESTO_CLI_JAR_URL \
-o $PRESTO_CLI_OUT
ENV PROMETHEUS_JMX_EXPORTER_VERSION 0.3.1
ENV RH_PROMETHEUS_JMX_EXPORTER_PATCH_VERSION 00006
ENV RH_PROMETHEUS_JMX_EXPORTER_VERSION ${PROMETHEUS_JMX_EXPORTER_VERSION}.redhat-${RH_PROMETHEUS_JMX_EXPORTER_PATCH_VERSION}
ENV RH_PROMETHEUS_JMX_EXPORTER_BREW_DIR ${PROMETHEUS_JMX_EXPORTER_VERSION}.redhat_${RH_PROMETHEUS_JMX_EXPORTER_PATCH_VERSION}
ENV PROMETHEUS_JMX_EXPORTER_OUT /build/jmx_prometheus_javaagent.jar
ARG PROMETHEUS_JMX_EXPORTER_URL=http://download.eng.bos.redhat.com/brewroot/packages/io.prometheus.jmx-parent/${RH_PROMETHEUS_JMX_EXPORTER_BREW_DIR}/1/maven/io/prometheus/jmx/jmx_prometheus_javaagent/${RH_PROMETHEUS_JMX_EXPORTER_VERSION}/jmx_prometheus_javaagent-${RH_PROMETHEUS_JMX_EXPORTER_VERSION}.jar
RUN set -x; curl -fSLs \
$PROMETHEUS_JMX_EXPORTER_URL \
-o $PROMETHEUS_JMX_EXPORTER_OUT
FROM rhel7:7-released
RUN set -x; \
INSTALL_PKGS="openssl java-1.8.0-openjdk java-1.8.0-openjdk-devel less rsync tini faq" \
&& yum clean all \
&& rm -rf /var/cache/yum/* \
&& yum install --setopt=skip_missing_names_on_install=False -y $INSTALL_PKGS \
&& yum clean all \
&& rm -rf /var/cache/yum
RUN mkdir -p /opt/presto
ENV PRESTO_VERSION 315.0
ENV PRESTO_HOME /opt/presto/presto-server
ENV PRESTO_CLI /opt/presto/presto-cli
ENV PROMETHEUS_JMX_EXPORTER /opt/jmx_exporter/jmx_exporter.jar
ENV TERM linux
ENV HOME /opt/presto
ENV JAVA_HOME=/etc/alternatives/jre
RUN mkdir -p $PRESTO_HOME
# https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html
# Java caches dns results forever, don't cache dns results forever:
RUN sed -i '/networkaddress.cache.ttl/d' $JAVA_HOME/lib/security/java.security
RUN sed -i '/networkaddress.cache.negative.ttl/d' $JAVA_HOME/lib/security/java.security
RUN echo 'networkaddress.cache.ttl=0' >> $JAVA_HOME/lib/security/java.security
RUN echo 'networkaddress.cache.negative.ttl=0' >> $JAVA_HOME/lib/security/java.security
COPY --from=build /build/presto-server/target/presto-server-$PRESTO_VERSION $PRESTO_HOME
COPY --from=build /build/presto-cli/target/presto-cli-$PRESTO_VERSION-executable.jar $PRESTO_CLI
COPY --from=build /build/jmx_prometheus_javaagent.jar $PROMETHEUS_JMX_EXPORTER
RUN ln $PRESTO_CLI /usr/local/bin/presto-cli && \
chmod 755 /usr/local/bin/presto-cli
RUN chown -R 1003:0 /opt/presto $JAVA_HOME/lib/security/cacerts && \
chmod -R 774 $JAVA_HOME/lib/security/cacerts && \
chmod -R 775 /opt/presto
USER 1003
EXPOSE 8080
WORKDIR $PRESTO_HOME
CMD ["tini", "--", "bin/launcher", "run"]
LABEL io.k8s.display-name="OpenShift Presto" \
io.k8s.description="This is an image used by operator-metering to to install and run Presto." \
io.openshift.tags="openshift" \
maintainer="AOS Operator Metering <sd-operator-metering@redhat.com>"