mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-17 23:13:10 +00:00
89 lines
2.6 KiB
YAML
89 lines
2.6 KiB
YAML
version: '3.7'
|
|
networks:
|
|
dspacenet:
|
|
services:
|
|
# DSpace (backend) webapp container
|
|
dspace:
|
|
container_name: dspace
|
|
image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-7_x-test}"
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.test
|
|
depends_on:
|
|
- dspacedb
|
|
networks:
|
|
dspacenet:
|
|
ports:
|
|
- published: 8080
|
|
target: 8080
|
|
- published: 8009
|
|
target: 8009
|
|
stdin_open: true
|
|
tty: true
|
|
volumes:
|
|
- assetstore:/dspace/assetstore
|
|
- ./dspace/src/main/docker-compose/local.cfg:/dspace/config/local.cfg
|
|
# Ensure that the database is ready BEFORE starting tomcat
|
|
# 1. While a TCP connection to dspacedb port 5432 is not available, continue to sleep
|
|
# 2. Then, run database migration to init database tables
|
|
# 3. Finally, start Tomcat
|
|
entrypoint:
|
|
- /bin/bash
|
|
- '-c'
|
|
- |
|
|
while (!</dev/tcp/dspacedb/5432) > /dev/null 2>&1; do sleep 1; done;
|
|
/dspace/bin/dspace database migrate
|
|
catalina.sh run
|
|
# DSpace database container
|
|
dspacedb:
|
|
container_name: dspacedb
|
|
environment:
|
|
PGDATA: /pgdata
|
|
# Uses a custom Postgres image with pgcrypto installed
|
|
image: dspace/dspace-postgres-pgcrypto
|
|
networks:
|
|
dspacenet:
|
|
ports:
|
|
- published: 5432
|
|
target: 5432
|
|
stdin_open: true
|
|
tty: true
|
|
volumes:
|
|
- pgdata:/pgdata
|
|
# DSpace Solr container
|
|
dspacesolr:
|
|
container_name: dspacesolr
|
|
# Uses official Solr image at https://hub.docker.com/_/solr/
|
|
image: solr:8.7
|
|
networks:
|
|
dspacenet:
|
|
ports:
|
|
- published: 8983
|
|
target: 8983
|
|
stdin_open: true
|
|
tty: true
|
|
working_dir: /var/solr/data
|
|
volumes:
|
|
# Mount our local Solr core configs so that they are available as Solr configsets on container
|
|
- ./dspace/solr/authority:/opt/solr/server/solr/configsets/authority
|
|
- ./dspace/solr/oai:/opt/solr/server/solr/configsets/oai
|
|
- ./dspace/solr/search:/opt/solr/server/solr/configsets/search
|
|
- ./dspace/solr/statistics:/opt/solr/server/solr/configsets/statistics
|
|
# Keep Solr data directory between reboots
|
|
- solr_data:/var/solr/data
|
|
# Initialize all DSpace Solr cores using the mounted local configsets (see above), then start Solr
|
|
entrypoint:
|
|
- /bin/bash
|
|
- '-c'
|
|
- |
|
|
init-var-solr
|
|
precreate-core authority /opt/solr/server/solr/configsets/authority
|
|
precreate-core oai /opt/solr/server/solr/configsets/oai
|
|
precreate-core search /opt/solr/server/solr/configsets/search
|
|
precreate-core statistics /opt/solr/server/solr/configsets/statistics
|
|
exec solr -f
|
|
volumes:
|
|
assetstore:
|
|
pgdata:
|
|
solr_data:
|