Docker container hosting a Cantaloupe instance for the Illinois Digital Library Service.
- Cantaloupe listens on HTTP port 8182.
- AWS credentials are obtained from a task IAM role. When running locally, these are obtained from an ECS Local Endpoint.
- There are three supported identifier schemes:
- Medusa file UUIDs. The S3Source delegate method calls the Medusa HTTP API to look up their object keys.
- Full S3 URLs (
s3://...
). - Strings starting with
v/
are video thumbnails for whichHttpSource
is used to get an image from Kaltura, because ofFfmpegProcessor
limitations (see below). There are a very small number of these.
- The source for all Medusa content is S3Source and its lookup strategy is
ScriptLookupStrategy
. - The derivative cache is S3Cache.
- Format assignments:
- JPEG: TurboJpegProcessor
- JPEG2000: KakaduNativeProcessor
- PDF: PdfBoxProcessor
- Videos: FfmpegProcessor (which works very poorly with non-filesystem storage, so serving video stills is not advised)
- Everything else: Java2dProcessor
- Look at the comment header of
image_files/cantaloupe.properties
to see what version it's for. - Download that version's
release zip file
into
image_files
.- Of course, you can use any version, as long as the config file contains the right keys for it, and any dependencies are in place.
- This could be automated, but doing it this way makes it easier to use arbitrary snapshots.
- Copy
env.list.sample
toenv.list
and fill it in. Don't commit it to version control! ./docker-build.sh
aws login
(GitHub)docker-compose up --build
It's now listening at http://localhost:8182
.
In ECS, env.list
isn't used, so all of its variables have to be set in
the task definition.
./ecr-push.sh
./ecs-deploy.sh
- Check the status via the AWS web console or
./ecs-status.rb
.
Images are tagged with the Cantaloupe version. There is also a latest
tag
applied to the latest version which is what is specified in the task
definition. If there is ever a need to revert to a previous version, the
task definition must be updated (in Terraform) to specify that version.