Skip to content

Commit

Permalink
Fix JDK build
Browse files Browse the repository at this point in the history
  • Loading branch information
EugenMayer committed Oct 30, 2023
1 parent 01e515c commit b3ef7df
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 6 deletions.
26 changes: 24 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,43 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Build
- name: Build JRE
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
push: false
target: jre
tags: |
${{ env.IMAGE_FQDN }}:latest
- name: Push
- name: Build JDK
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
push: false
target: jre
tags: |
${{ env.IMAGE_FQDN }}:jdk-latest
- name: Push JRE
uses: docker/build-push-action@v3
if: startsWith(github.ref, 'refs/tags/')
with:
context: .
platforms: linux/amd64
push: true
target: jre
tags: |
${{ env.IMAGE_FQDN }}:latest
${{ env.IMAGE_FQDN }}:${{ github.ref_name }}
- name: Push JDK
uses: docker/build-push-action@v3
if: startsWith(github.ref, 'refs/tags/')
with:
context: .
platforms: linux/amd64
push: true
target: jdk
tags: |
${{ env.IMAGE_FQDN }}:jdk-latest
${{ env.IMAGE_FQDN }}:jdk-${{ github.ref_name }}
28 changes: 25 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
ARG TARGET_BASE_IMAGE=debian:bookworm
ARG JAVA_VERSION=17

FROM eclipse-temurin:17-jdk-jammy as javabase
############ JRESOURCE ############
FROM eclipse-temurin:${JAVA_VERSION}-jdk-jammy as jresource
ENV JAVA_MODULES=java.base,java.compiler,java.datatransfer,java.desktop,java.instrument,java.logging,java.management,java.management.rmi,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.se,java.security.jgss,java.security.sasl,java.smartcardio,java.sql,java.sql.rowset,java.transaction.xa,java.xml,java.xml.crypto,jdk.accessibility,jdk.charsets,jdk.crypto.cryptoki,jdk.crypto.ec,jdk.dynalink,jdk.httpserver,jdk.incubator.vector,jdk.internal.vm.ci,jdk.internal.vm.compiler,jdk.internal.vm.compiler.management,jdk.jdwp.agent,jdk.jfr,jdk.jsobject,jdk.localedata,jdk.management,jdk.management.agent,jdk.management.jfr,jdk.naming.dns,jdk.naming.rmi,jdk.net,jdk.nio.mapmode,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsupported,jdk.xml.dom,jdk.zipfs

RUN $JAVA_HOME/bin/jlink \
Expand All @@ -12,12 +14,15 @@ RUN $JAVA_HOME/bin/jlink \
--output /jre

############ JRE ############
ARG TARGET_BASE_IMAGE=debian:bookworm
ARG TARGET_BASE_IMAGE

FROM $TARGET_BASE_IMAGE as jre

ARG JAVA_VERSION

ENV JAVA_HOME=/opt/java/openjdk
ENV PATH "${JAVA_HOME}/bin:${PATH}"
COPY --from=javabase /jre $JAVA_HOME
COPY --from=jresource /jre $JAVA_HOME

RUN apt-get update && apt-get -y install \
apt-transport-https locales-all libpng16-16 libxinerama1 libgl1-mesa-glx libfontconfig1 libfreetype6 libxrender1 \
Expand All @@ -30,3 +35,20 @@ RUN apt-get update && apt-get -y install \

# We do not need a CMD nor ENTRYPOINT, since we are not going to run anything. This is just the libreoffice runtime for \
# running jodconverter - the app is packaged in a different repo

############ jdk ############
ARG TARGET_BASE_IMAGE

FROM $TARGET_BASE_IMAGE as jdk
ARG JAVA_VERSION

# see https://adoptium.net/installation/linux/
RUN apt update && apt install -y wget apt-transport-https \
&& mkdir -p /etc/apt/keyrings \
&& wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc \
&& echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list \
&& apt update \
&& apt install -y temurin-${JAVA_VERSION}-jdk \
# rm jdk
&& rm -fr /opt/java/openjdk

3 changes: 2 additions & 1 deletion makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
build:
docker build -t ghcr.io/jodconverter/jodconverter-runtime:latest .
docker build --target jre -t ghcr.io/jodconverter/jodconverter-runtime:jre .
docker build --target jdk -t ghcr.io/jodconverter/jodconverter-runtime:jdk .

0 comments on commit b3ef7df

Please sign in to comment.