docker-compose.yml
services:
app:
image: lafayette/spot-web
build:
context: .
target: spot-web-development
volumes:
- .:/spot
- rails_tmp:/spot/tmp
- /spot/public/pdf
ports:
- "443:443"
env_file:
- .env.local
depends_on:
- cantaloupe
- db
- fedora
- redis
- solr
- db_migrate
stdin_open: true
tty: true
cantaloupe:
image: uclalibrary/cantaloupe:4.1.5
ports:
- "8182:8182"
environment:
CANTALOUPE_BASE_URI: 'http://localhost:8182'
CANTALOUPE_SOURCE_STATIC: S3Source
CANTALOUPE_S3SOURCE_ACCESS_KEY_ID: minio_root_user
CANTALOUPE_S3SOURCE_SECRET_KEY: minio_root_password
CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME: iiif-derivatives
CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_PATH_SUFFIX: "-access.tif"
CANTALOUPE_S3SOURCE_ENDPOINT: "http://minio:9000"
CANTALOUPE_S3SOURCE_LOOKUP_STRATEGY: BasicLookupStrategy
CANTALOUPE_LOG_APPLICATION_LEVEL: trace
restart: unless-stopped
db:
image: postgres:13-alpine
volumes:
- db:/var/lib/postgresql/data
- ./bin/create-dev-dbs.sql:/docker-entrypoint-initdb.d/10-create-dev-dbs.sql
ports:
- "5432:5432"
environment:
POSTGRES_DB: spot_dev
POSTGRES_USER: spot_dev_user
POSTGRES_PASSWORD: spot_dev_pw
restart: unless-stopped
db_migrate:
image: lafayette/spot-web
env_file:
- .env.local
entrypoint: ["sh", "-c"]
command: bin/migrate-and-seed-db.sh
depends_on:
- db
- fedora
- solr
fedora:
build:
context: ./docker/fcrepo
volumes:
- fedora:/data:cached
ports:
- 8080:8080
environment:
FCREPO_POSTGRES_HOST: db
FCREPO_POSTGRES_USER: spot_fcrepo_dev_user
FCREPO_POSTGRES_PASSWORD: spot_fcrepo_dev_pw
restart: unless-stopped
depends_on:
- db
fits-servlet:
build:
context: ./docker/fits_servlet
ports:
- 8000:8080
restart: unless-stopped
minio:
image: minio/minio:latest
environment:
MINIO_ROOT_USER: minio_root_user
MINIO_ROOT_PASSWORD: minio_root_password
command: server --console-address ":9001" /data
volumes:
- minio:/data
ports:
- 9000:9000
- 9001:9001
redis:
image: redis:alpine
volumes:
- redis:/data
restart: unless-stopped
ports:
- 6379:6379
sidekiq:
image: lafayette/spot-worker
build:
context: .
target: spot-worker-development
env_file:
- .env.local
environment:
- FITS_SERVLET_URL=http://fits-servlet:8080/fits
ports:
- "3003:3000"
command: ["bundle", "exec", "sidekiq"]
volumes:
- .:/spot
- rails_tmp:/spot/tmp
restart: unless-stopped
depends_on:
- db
- fedora
- fits-servlet
- redis
- solr
solr:
build:
context: ./docker/solr
volumes:
- solr:/var/solr/data
ports:
- "8983:8983"
environment:
- SOLR_CORES=spot-development,spot-test
- SOLR_HOST=solr
restart: unless-stopped
volumes:
db:
fedora:
minio:
solr:
rails_tmp:
redis: