LafayetteCollegeLibraries/spot

View on GitHub
docker-compose.yml

Summary

Maintainability
Test Coverage
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: