Skip to content

Commit

Permalink
Upgrade to the newest non-LTS openjdk
Browse files Browse the repository at this point in the history
  • Loading branch information
jcoyne committed Aug 16, 2024
1 parent b82d35f commit f1e512a
Show file tree
Hide file tree
Showing 8 changed files with 97 additions and 104 deletions.
14 changes: 7 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
java: [jdk11, jdk17, jdk18, jdk21, graalvm]
java: [jdk11, jdk17, jdk21, jdk22, graalvm]
fail-fast: false
steps:
- name: Check out the repository
Expand All @@ -22,9 +22,9 @@ jobs:
- name: Test in Linux JDK 17 (LTS)
if: matrix.os == 'ubuntu-latest' && matrix.java == 'jdk17'
run: docker compose -f docker/Linux-JDK17/compose.yml up --build --exit-code-from cantaloupe
- name: Test in Linux JDK 18
if: matrix.os == 'ubuntu-latest' && matrix.java == 'jdk18'
run: docker compose -f docker/Linux-JDK18/docker-compose.yml up --build --exit-code-from cantaloupe
- name: Test in Linux JDK 22 (non-LTS)
if: matrix.os == 'ubuntu-latest' && matrix.java == 'jdk22'
run: docker compose -f docker/Linux-JDK22/docker-compose.yml up --build --exit-code-from cantaloupe
- name: Test in Linux JDK 21 (LTS)
if: matrix.os == 'ubuntu-latest' && matrix.java == 'jdk21'
run: docker compose -f docker/Linux-JDK21/compose.yml up --build --exit-code-from cantaloupe
Expand All @@ -37,9 +37,9 @@ jobs:
- name: Test in Windows JDK 17 (LTS)
if: matrix.os == 'windows-latest' && matrix.java == 'jdk17'
run: docker compose -f docker/Windows-JDK17/compose.yml up --build --exit-code-from cantaloupe
- name: Test in Windows JDK 18
if: matrix.os == 'windows-latest' && matrix.java == 'jdk18'
run: docker compose -f docker/Windows-JDK18/docker-compose.yml up --build --exit-code-from cantaloupe
- name: Test in Windows JDK 22 (non-LTS)
if: matrix.os == 'windows-latest' && matrix.java == 'jdk22'
run: docker compose -f docker/Windows-JDK22/docker-compose.yml up --build --exit-code-from cantaloupe
- name: Test in Windows JDK 21 (LTS)
if: matrix.os == 'windows-latest' && matrix.java == 'jdk21'
run: docker compose -f docker/Windows-JDK21/compose.yml up --build --exit-code-from cantaloupe
Expand Down
70 changes: 0 additions & 70 deletions docker/Linux-JDK18/Dockerfile

This file was deleted.

65 changes: 65 additions & 0 deletions docker/Linux-JDK22/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
FROM ubuntu:lunar

ENV JAVA_HOME=/opt/jdk
ENV PATH=$PATH:/opt/jdk/bin:/opt/maven/bin
ARG DEBIAN_FRONTEND=noninteractive

# Install various dependencies:
# * ca-certificates is needed by wget
# * ffmpeg is needed by FfmpegProcessor
# * wget download stuffs in this dockerfile
# * libopenjp2-tools is needed by OpenJpegProcessor
# * All the rest is needed by GrokProcessor
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
ffmpeg \
wget \
libopenjp2-tools \
liblcms2-dev \
libpng-dev \
libzstd-dev \
libtiff-dev \
libjpeg-dev \
zlib1g-dev \
libwebp-dev \
libimage-exiftool-perl \
libgrokj2k1 \
grokj2k-tools \
adduser \
&& rm -rf /var/lib/apt/lists/*

# Install TurboJpegProcessor dependencies
RUN mkdir -p /opt/libjpeg-turbo/lib
COPY docker/Linux-JDK11/image_files/libjpeg-turbo/lib64 /opt/libjpeg-turbo/lib

# Install KakaduNativeProcessor dependencies
COPY dist/deps/Linux-x86-64/lib/* /usr/lib/

# Install various other dependencies that aren't in apt
# Install OpenJDK
RUN wget -q https://download.java.net/java/GA/jdk22.0.2/c9ecb94cd31b495da20a27d4581645e8/9/GPL/openjdk-22.0.2_linux-x64_bin.tar.gz \
&& tar xfz openjdk-22.0.2_linux-x64_bin.tar.gz \
&& mv jdk-22.0.2 /opt/jdk \
# Install a newer Maven than the one in apt
&& wget -q https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz \
&& tar xfz apache-maven-3.8.8-bin.tar.gz \
&& mv apache-maven-3.8.8 /opt/maven \
&& rm apache-maven-3.8.8-bin.tar.gz

# A non-root user is needed for some FilesystemSourceTest tests to work.
ARG user=cantaloupe
ARG home=/home/$user
RUN adduser --home $home $user
RUN chown -R $user $home
USER $user
WORKDIR $home

# Install application dependencies
COPY ./pom.xml pom.xml
RUN mvn --quiet dependency:resolve

# Copy the code
COPY --chown=cantaloupe docker/Linux-JDK11/image_files/test.properties test.properties
COPY --chown=cantaloupe ./src src

ENTRYPOINT mvn --batch-mode test -Pfreedeps
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
#
# N.B.: docker-compose must be invoked from the project root directory:
# N.B.: docker compose must be invoked from the project root directory:
#
# docker-compose -f path/to/docker-compose.yml up --exit-code-from cantaloupe
# docker compose -f path/to/compose.yaml up --exit-code-from cantaloupe
#
version: '3'
services:
cantaloupe:
build:
context: ../../
dockerfile: $PWD/docker/Linux-JDK18/Dockerfile
dockerfile: $PWD/docker/Linux-JDK22/Dockerfile
minio:
image: minio/minio
environment:
Expand Down
19 changes: 0 additions & 19 deletions docker/Windows-JDK18/docker-compose.yml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ ENV chocolateyUseWindowsCompression false
# Install the Chocolatey package manager, which makes it easier to install
# dependencies.
RUN powershell -Command \
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')); \
choco feature disable --name showDownloadProgress
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')); \
choco feature disable --name showDownloadProgress

# Install various dependencies
# TODO: openjpeg
RUN choco install -y maven ffmpeg
RUN choco install -y openjdk --version=18.0.2
RUN choco install -y openjdk --version=22.0.2

# Install TurboJpegProcessor dependencies TODO: libjpeg-turbo
#RUN mkdir -p /opt/libjpeg-turbo/lib
#COPY docker/Windows10-JDK11/image_files/libjpeg-turbo/lib64 c:\windows\system32
Expand Down
File renamed without changes.
18 changes: 18 additions & 0 deletions docker/Windows-JDK22/compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#
# N.B.: docker compose must be invoked from the project root directory:
#
# docker compose -f path/to/compose.yaml up --exit-code-from cantaloupe
#
services:
cantaloupe:
build:
context: ../../
dockerfile: docker/Windows-JDK22/Dockerfile
minio:
build:
context: ../../
dockerfile: docker/Windows-JDK22/Dockerfile-minio
environment:
MINIO_ACCESS_KEY: MinioUser
MINIO_SECRET_KEY: OpenSesame
hostname: minio

0 comments on commit f1e512a

Please sign in to comment.