docker-compose.yml
version: '3.7'
services:
web: &web
build:
context: .
image: cazzerson/hy-c-universal
platform: linux/amd64
depends_on:
- clamav
- db
- fedora
- solr8
env_file:
- docker/.env
ports:
- 3000:3000
volumes:
- mount-code:/hyrax
- mount-gems:/hyc-gems
- fcrepo_data:/opt/fedora/
- hyrax_data:/opt/hyrax
- ftp_data:/opt/data/ftp
stdin_open: true
tty: true
networks:
- hycdev
sidekiq:
build:
context: .
image: cazzerson/hy-c-universal
platform: linux/amd64
depends_on:
- clamav
- db
- fedora
- redis
- solr8
- web
command: sh /hyrax/docker/start-sidekiq.sh
env_file:
- docker/.env
volumes:
- mount-code:/hyrax
- mount-gems:/hyc-gems
- fcrepo_data:/opt/fedora/
- hyrax_data:/opt/hyrax
- ftp_data:/opt/data/ftp
networks:
- hycdev
clamav:
image: tiredofit/clamav
ports:
- "3310:3310"
volumes:
- clam:/var/lib/clamav
- hyrax_data:/opt/hyrax
- mount-code:/hyrax
networks:
- hycdev
db:
image: postgres:14-alpine
volumes:
- pg_data:/var/lib/postgresql/data
ports:
- "5432:5432"
environment:
POSTGRES_USER: hyrax
POSTGRES_PASSWORD: password
networks:
- hycdev
fedora:
image: cazzerson/fcrepo4:4.7.5
ports:
- "8984:8080"
volumes:
- fcrepo_data:/usr/local/tomcat/fcrepo4-data/
environment:
CATALINA_OPTS: "-Djava.awt.headless=true -server -Xms1G -Xmx2G -XX:MaxNewSize=1G -XX:+HeapDumpOnOutOfMemoryError -Dfcrepo.modeshape.configuration=classpath:/config/file-simple/repository.json"
stdin_open: true
tty: true
networks:
- hycdev
redis:
image: redis:5.0.14
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- redis_data:/data
ports:
- "6379:6379"
networks:
- hycdev
solr8:
image: solr:8.11-slim
volumes:
- solr8-data:/opt/solr/server/solr/configsets/hy-c
ports:
- "8983:8983"
command: >
bash -c "
precreate-core hydra-development /opt/solr/server/solr/configsets/hy-c;
precreate-core hydra-test /opt/solr/server/solr/configsets/hy-c;
exec solr -f
"
networks:
- hycdev
volumes:
mount-code:
mount-gems:
solr8-data:
clam:
pg_data:
fcrepo_data:
redis_data:
hyrax_data:
ftp_data:
networks:
hycdev:
driver: bridge
driver_opts:
com.docker.network.bridge.name: br-hycdev
x-mutagen:
sync:
defaults:
mode: "two-way-resolved"
ignore:
vcs: true
paths:
- ".DS_Store"
mount-code:
alpha: '.'
beta: "volume://mount-code"
configurationBeta:
permissions:
defaultFileMode: 0644
defaultDirectoryMode: 0755
#mount-gems:
#alpha: '../hyc-gems'
#beta: "volume://mount-gems"
# TODO: can we move these to simple volumes by auto-copying the configs over?
solr8-data:
alpha: './solr/config'
beta: 'volume://solr8-data'
configurationBeta:
permissions:
defaultOwner: 'id:8983'
defaultGroup: 'id:8983'