🍣
Docker版Cantaloupeを使用して、S3バケットにアクセスしSSL通信を行う方法
概要
Docker版のCantaloupeの使い方を以下で紹介しました。
このDocker版Cantaloupeを(大規模ではない)production環境で使用するには、Amazon S3との接続や、SSL対応が求められます。その方法を一例を紹介します。
Amazon S3との接続
公式では以下で紹介されています。
日本語の記事として以下があります。
また、今回扱うDocker版では、以下に記載がありました。
そこで、S3と最低限の接続を行うためのリポジトリを作成しました。
.env.example
を.env
にリネームまたはコピーして、必要な値を入力します。
SSL対応
以下の記事を参考にしました。EC2上にDockerをインストールし、nginx-proxy
とnginx-proxy-lets-encrypt
を利用してSSL化を行いました。
proxy/docker-compose.yml
version: '3'
# proxy
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- html:/usr/share/nginx/html
- dhparam:/etc/nginx/dhparam
- vhost:/etc/nginx/vhost.d
- certs:/etc/nginx/certs:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
- /srv/docker/nginx-proxy-with-encrypt/log:/var/log/nginx
labels:
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy"
restart: always
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: nginx-proxy-lets-encrypt
depends_on:
- "nginx-proxy"
volumes:
- certs:/etc/nginx/certs:rw
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
certs:
html:
vhost:
dhparam:
networks:
default:
external:
name: common_link
cantaloupe/docker-compose.yml
services:
cantaloupe:
image: islandora/cantaloupe:2.0.10
environment:
CANTALOUPE_ENDPOINT_ADMIN_ENABLED: false
CANTALOUPE_ENDPOINT_ADMIN_SECRET: my_admin_pass
CANTALOUPE_SOURCE_STATIC: S3Source
CANTALOUPE_S3SOURCE_ACCESS_KEY_ID: ${CANTALOUPE_S3SOURCE_ACCESS_KEY_ID}
CANTALOUPE_S3SOURCE_SECRET_KEY: ${CANTALOUPE_S3SOURCE_SECRET_KEY}
CANTALOUPE_S3SOURCE_REGION: ${CANTALOUPE_S3SOURCE_REGION}
CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME: ${CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME}
CANTALOUPE_S3SOURCE_LOOKUP_STRATEGY: BasicLookupStrategy # Or another strategy if needed
VIRTUAL_HOST: <カスタムドメイン>
LETSENCRYPT_HOST: <カスタムドメイン>
LETSENCRYPT_EMAIL: <メールアドレス>
restart: always
networks:
default:
external:
name: common_link
まとめ
IIIF画像サーバの小中規模の利用にあたっては、上記のような形が比較的容易な導入方法の一つに当たるかと思います。
S3を使ったIIIF画像配信にあたっては、以下のツールもあります。
上記リポジトリの最新の内容を反映できていない古い記事になりますが、以下の日本語記事も参考になりましたら幸いです。
IIIF画像サーバの導入方法の一つとして参考になりましたら幸いです。
Discussion