| 
1 | 1 | # Build stage  | 
2 |  | -FROM docker.elastic.co/wolfi/jdk:openjdk-21.35-r1@sha256:d7ca36452a68f28e4c4683062241e817b548844820a0ffd087451214e61eb188 AS builder  | 
3 |  | - | 
 | 2 | +FROM docker.elastic.co/wolfi/jdk:openjdk-21.0.8-r1-dev@sha256:935bb066f36b48abf8e7dce4533cec6a0d62c24d4ec4073a5c95d282840028f9 AS builder  | 
4 | 3 | USER root  | 
5 | 4 | 
 
  | 
6 | 5 | # ------------------------------------------------------------------------------  | 
@@ -53,25 +52,35 @@ RUN make clean install  | 
53 | 52 | # add more directories and files not to be copied to the runtime image from /home/app  | 
54 | 53 | RUN rm -rf .git .github .idea .devcontainer .buildkite  | 
55 | 54 | 
 
  | 
 | 55 | +# Create custom JDK using jlink  | 
 | 56 | +RUN jlink \  | 
 | 57 | +    --add-modules java.base,jdk.crypto.ec,java.logging,java.management,java.naming,java.net.http,java.scripting,java.security.jgss,java.security.sasl,java.sql,jdk.unsupported \  | 
 | 58 | +    --strip-debug \  | 
 | 59 | +    --no-man-pages \  | 
 | 60 | +    --no-header-files \  | 
 | 61 | +    --compress=zip-6 \  | 
 | 62 | +    --output /opt/jdk-crawler  | 
 | 63 | + | 
56 | 64 | # ------------------------------------------------------------------------------  | 
57 |  | -# Runtime stage - using the same base image  | 
58 |  | -FROM docker.elastic.co/wolfi/jdk:openjdk-21.35-r1@sha256:d7ca36452a68f28e4c4683062241e817b548844820a0ffd087451214e61eb188  | 
 | 65 | +# Runtime stage - using wolfi-base  | 
 | 66 | +FROM docker.elastic.co/wolfi/chainguard-base@sha256:3b2026fffccfc6223a9f49f09279e044008b64e30b948cee17f9a74143a2c850  | 
59 | 67 | 
 
  | 
60 | 68 | USER root  | 
61 | 69 | 
 
  | 
 | 70 | +# Create java user and install runtime dependencies  | 
 | 71 | +RUN addgroup -g 1000 java && adduser -u 1000 -G java -s /bin/bash -D java && \  | 
 | 72 | +    apk update && apk add --no-cache libcurl-openssl4=~8.12.1 git=~2.50.1-r1 bash=~5.3.0  | 
 | 73 | + | 
62 | 74 | # Set environment variables  | 
63 |  | -ENV JAVA_HOME=/usr/lib/jvm/default-jvm \  | 
64 |  | -    PATH=/opt/jruby/bin:/usr/local/bundle/bin:$PATH \  | 
 | 75 | +ENV JAVA_HOME=/opt/jdk-crawler \  | 
 | 76 | +    PATH=/opt/jdk-crawler/bin:/opt/jruby/bin:/usr/local/bundle/bin:$PATH \  | 
65 | 77 |     GEM_HOME=/usr/local/bundle \  | 
66 | 78 |     BUNDLE_SILENCE_ROOT_WARNING=1 \  | 
67 | 79 |     BUNDLE_APP_CONFIG=/usr/local/bundle \  | 
68 | 80 |     IS_DOCKER=1  | 
69 | 81 | 
 
  | 
70 |  | -# Install runtime dependencies  | 
71 |  | -RUN apk update && apk add --no-cache libcurl-openssl4=~8.12.1 git=~2.45.0  | 
72 |  | - | 
73 |  | - | 
74 |  | -# Copy JRuby, gem environment, and application from builder  | 
 | 82 | +# Copy custom JDK, JRuby, gem environment, and application from builder  | 
 | 83 | +COPY --from=builder /opt/jdk-crawler /opt/jdk-crawler  | 
75 | 84 | COPY --from=builder /opt/jruby /opt/jruby  | 
76 | 85 | COPY --from=builder /usr/local/bundle /usr/local/bundle  | 
77 | 86 | COPY --from=builder --chown=java:java /home/app /home/app  | 
 | 
0 commit comments