1- # Copyright (c) 2021, 2022 , Oracle and/or its affiliates.
1+ # Copyright (c) 2021, 2023 , Oracle and/or its affiliates.
22# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
33
4- # First layer: dependencies for the project, cached in the /root/.m2 directory
5- FROM maven:3-openjdk-18-slim as m2repo
6- ARG MAVEN_OPTS
4+ FROM ghcr.io/oracle/oraclelinux:9-slim AS jre-build
75
8- WORKDIR /project/
9- COPY pom.xml .
10- COPY build-helper-mojo/pom.xml build-helper-mojo/
11- COPY wls-exporter-core/pom.xml wls-exporter-core/
12- COPY wls-exporter-sidecar/pom.xml wls-exporter-sidecar/
13-
14- RUN mvn -B -e -C org.apache.maven.plugins:maven-dependency-plugin:3.1.2:go-offline -Ddocker-build
15-
16- # Now build the project on top of that first layer
17- FROM maven:3-openjdk-18-slim as build
18- ARG MAVEN_OPTS
19-
20- WORKDIR /project/
21- COPY --from=m2repo /root/.m2 /root/.m2
22- COPY pom.xml .
23- COPY build-helper-mojo/ build-helper-mojo/
24- COPY wls-exporter-core/ wls-exporter-core/
25- COPY wls-exporter-sidecar/ wls-exporter-sidecar/
6+ ENV JAVA_URL="https://download.java.net/java/GA/jdk19.0.2/fdb695a9d9064ad6b064dc6df578380c/7/GPL/openjdk-19.0.2_linux-x64_bin.tar.gz"
267
278RUN set -eux; \
28- apt-get update; \
29- apt-get install git -y; \
30- mvn -B -e -C install -Ddocker-build -DskipTests=true; \
31- $JAVA_HOME/bin/jlink --verbose --compress 2 --strip-java-debug-attributes --no-header-files --no-man-pages --output /jre --add-modules java.base,java.logging,java.desktop,java.instrument,java.management,java.naming,java.net.http,java.security.jgss,java.sql,jdk.attach,jdk.jdi,jdk.jfr,jdk.management,jdk.management.jfr,jdk.net,jdk.unsupported,jdk.crypto.cryptoki,jdk.crypto.ec,jdk.zipfs
9+ microdnf -y install gzip tar; \
10+ curl -fL -o /jdk.tar.gz "$JAVA_URL" ; \
11+ mkdir -p /jdk; \
12+ tar --extract --file /jdk.tar.gz --directory /jdk --strip-components 1; \
13+ /jdk/bin/jlink --verbose --compress 2 --strip-java-debug-attributes --no-header-files --no-man-pages --output jre --add-modules java.base,java.logging,java.desktop,java.instrument,java.management,java.naming,java.net.http,java.security.jgss,java.sql,jdk.attach,jdk.jdi,jdk.jfr,jdk.management,jdk.management.jfr,jdk.net,jdk.unsupported,jdk.crypto.cryptoki,jdk.crypto.ec,jdk.zipfs
3214
33- FROM ghcr.io/oracle/oraclelinux:8 -slim
15+ FROM ghcr.io/oracle/oraclelinux:9 -slim
3416
3517LABEL "org.opencontainers.image.authors" ="Ryan Eberhard <ryan.eberhard@oracle.com>, Russell Gold <russell.gold@oracle.com>" \
3618 "org.opencontainers.image.url" ="https://github.com/oracle/weblogic-monitoring-exporter" \
@@ -40,8 +22,11 @@ LABEL "org.opencontainers.image.authors"="Ryan Eberhard <ryan.eberhard@oracle.co
4022 "org.opencontainers.image.description" ="Oracle WebLogic Monitoring Exporter" \
4123 "org.opencontainers.image.documentation" ="https://github.com/oracle/weblogic-monitoring-exporter"
4224
43- COPY --from=build /jre jre
25+ ENV LANG= "en_US.UTF-8"
4426
27+ COPY --from=jre-build /jre jre
28+
29+ # Install Java and make the operator run with a non-root user id (1000 is the `oracle` user)
4530RUN set -eux; \
4631 microdnf -y update; \
4732 microdnf clean all; \
@@ -50,12 +35,15 @@ RUN set -eux; \
5035 [ ! -e "/usr/bin/$base" ]; \
5136 alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \
5237 done; \
53- java -Xshare:dump
38+ java -Xshare:dump; \
39+ useradd -M -s /bin/bash -g root -u 1000 oracle
40+
41+ USER oracle
5442
55- COPY --from=build project/ wls-exporter-sidecar/target/wls-exporter-sidecar.jar ./
56- COPY --from=build project/ wls-exporter-sidecar/target/libs ./libs
57- COPY start_exporter.sh .
43+ COPY --chown=oracle:root wls-exporter-sidecar/target/wls-exporter-sidecar.jar ./
44+ COPY --chown=oracle:root wls-exporter-sidecar/target/libs ./libs
45+ COPY --chown=oracle:root start_exporter.sh .
5846
59- ENTRYPOINT ["sh" , " start_exporter.sh" ]
47+ CMD ["/ start_exporter.sh" ]
6048
61- EXPOSE 8080
49+ EXPOSE 8080
0 commit comments