Running Cantaloupe as a IIIF compliant image server for ISLE.
Based on:
- ISLE-tomcat
- Cantaloupe 4.1.x an IIIF compliant open-source dynamic image server
Contains and Includes:
- ImageMagick 7.x
- Features: Cipher DPC HDRI OpenMP
- Delegates (built-in): bzlib djvu mpeg fontconfig freetype jbig jng jpeg lcms lqr lzma openexr openjp2 png ps raw rsvg tiff webp wmf x zlib
- OpenJPEG
- FFmepg
- For general usage of this image and ISLE, please refer to ISLE documentation
- Please note: As of ISLE release 1.5.1, the demo Kakadu binaries, libraries and paths are no longer used in the compiling of the
isle-imageservices
Docker image. If you require them, you will need to do the following:
- Within the
Dockerfile
: comment out the following lines, e.g. add a#
in front of those lines and save the file.
JAVA_OPTS='-Djava.awt.headless=true -server -Xmx${JAVA_MAX_MEM} -Xms${JAVA_MIN_MEM} -XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=70 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true' \
CATALINA_OPTS="-Dcantaloupe.config=/usr/local/cantaloupe/cantaloupe.properties \
-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true \
-Djava.library.path=/usr/local/lib:/usr/local/tomcat/lib \
-DLD_LIBRARY_PATH=/usr/local/lib:/usr/local/tomcat/lib"
- Within the
Dockerfile
: uncomment the following lines and save the file.
#KAKADU_HOME=/usr/local/cantaloupe/deps/Linux-x86-64/bin \
#KAKADU_LIBRARY_PATH=/usr/local/cantaloupe/deps/Linux-x86-64/lib \
#JAVA_OPTS='-Djava.awt.headless=true -server -Xmx${JAVA_MAX_MEM} -Xms${JAVA_MIN_MEM} -XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=70 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true' \
#CATALINA_OPTS="-Dcantaloupe.config=/usr/local/cantaloupe/cantaloupe.properties \
#-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true \
#-Dkakadu.home=/usr/local/cantaloupe/deps/Linux-x86-64/bin \
#-Djava.library.path=/usr/local/cantaloupe/deps/Linux-x86-64/lib:/usr/local/tomcat/lib \
#-DLD_LIBRARY_PATH=/usr/local/cantaloupe/deps/Linux-x86-64/lib:/usr/local/tomcat/lib"
- Within the Dockerfile, uncomment the following lines and save the file.
# chmod 755 /usr/local/cantaloupe/deps/Linux-x86-64/bin/kdu_expand && \
# ln -s /usr/local/cantaloupe/deps/Linux-x86-64/bin/kdu_expand /usr/local/bin/kdu_expand && \
# ln -s /usr/local/cantaloupe/deps/Linux-x86-64/lib/libkdu_a7AR.so /usr/local/lib/libkdu_a7AR.so && \
# ln -s /usr/local/cantaloupe/deps/Linux-x86-64/lib/libkdu_jni.so /usr/local/lib/libkdu_jni.so && \
# ln -s /usr/local/cantaloupe/deps/Linux-x86-64/lib/libkdu_v7AR.so /usr/local/lib/libkdu_v7AR.so && \
-
Within the following two files, edit the following:
rootfs/usr/local/cantaloupe/cantaloupe.properties
rootfs/etc/confd/templates/imageserv/cantaloupe.properties.tpl
- Find this line
KakaduDemoProcessor.path_to_binaries =
- add the path to the KaduDemoProcessor or paid Kakadu Processor binaries.
- save the file.
- Find this line
-
Within
rootfs/fix-attrs.d/11-cantaloupe
, edi the following:- Uncomment the following
# /usr/local/cantaloupe/deps/Linux-x86-64/bin/kdu_expand true tomcat 0755
- save the file
- Uncomment the following
-
Once finished, check in your changes into a new git repository.
-
Open a terminal and either clone down this new git repository to your local laptop or
cd
to the project on your laptop -
Build the image
docker build -t yourdockerimagerepohere/isle-imageservices:1.x.x .
-
Push the image to your docker image repo
docker push yourdockerimagerepohere/isle-imageservices:1.x.x
-
Use the newly built image in ISLE
- Within all of the
docker-compose.*.yml
files in your ISLE project, changeimage: islandoracollabgroup/isle-imageservices:1.x.x
toimage: yourdockerimagerepohere/isle-imageservices:1.x.x
- Save all of the files after editing and check the changes into git.
- Within all of the