Skip to content

Commit

Permalink
add compose files for local testing
Browse files Browse the repository at this point in the history
  • Loading branch information
JR-1991 committed May 11, 2024
1 parent 3ae8711 commit a72457c
Show file tree
Hide file tree
Showing 3 changed files with 177 additions and 0 deletions.
137 changes: 137 additions & 0 deletions docker/docker-compose-base.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
version: "2.4"
name: pydataverse
services:
dataverse:
container_name: "dataverse"
hostname: dataverse
image: ${DATAVERSE_IMAGE}
restart: on-failure
user: payara
environment:
- DATAVERSE_DB_HOST=postgres
- DATAVERSE_DB_USER=${DATAVERSE_DB_USER}
- DATAVERSE_DB_PASSWORD=${DATAVERSE_DB_PASSWORD}
- JVM_ARGS=-Ddataverse.pid.providers=fake
-Ddataverse.pid.default-provider=fake
-Ddataverse.pid.fake.type=FAKE
-Ddataverse.pid.fake.label=FakeDOIProvider
-Ddataverse.pid.fake.authority=10.5072
-Ddataverse.pid.fake.shoulder=FK2/
ports:
- "8080:8080"
networks:
- dataverse
depends_on:
postgres:
condition: service_started
solr:
condition: service_started
dv_initializer:
condition: service_completed_successfully
volumes:
- ${PWD}/dv/data:/dv
- ${PWD}:/secrets
tmpfs:
- /dumps:mode=770,size=2052M,uid=1000,gid=1000
- /tmp:mode=770,size=2052M,uid=1000,gid=1000
mem_limit: 2147483648 # 2 GiB
mem_reservation: 1024m
privileged: false
healthcheck:
test: curl --fail http://dataverse:8080/api/info/version || exit 1
interval: 10s
retries: 20
start_period: 20s
timeout: 240s

dv_initializer:
container_name: "dv_initializer"
image: ${CONFIGBAKER_IMAGE}
restart: "no"
command:
- sh
- -c
- "fix-fs-perms.sh dv"
volumes:
- ${PWD}/dv/data:/dv

postgres:
container_name: "postgres"
hostname: postgres
image: postgres:${POSTGRES_VERSION}
restart: on-failure
environment:
- POSTGRES_USER=${DATAVERSE_DB_USER}
- POSTGRES_PASSWORD=${DATAVERSE_DB_PASSWORD}
ports:
- "5432:5432"
networks:
- dataverse

solr_initializer:
container_name: "solr_initializer"
image: ${CONFIGBAKER_IMAGE}
restart: "no"
command:
- sh
- -c
- "fix-fs-perms.sh solr && cp -a /template/* /solr-template"
volumes:
- ${PWD}/solr/data:/var/solr
- ${PWD}/solr/conf:/solr-template

solr:
container_name: "solr"
hostname: "solr"
image: solr:${SOLR_VERSION}
depends_on:
solr_initializer:
condition: service_completed_successfully
restart: on-failure
ports:
- "8983:8983"
networks:
- dataverse
command:
- "solr-precreate"
- "collection1"
- "/template"
volumes:
- ${PWD}/solr/data:/var/solr
- ${PWD}/solr/conf:/template

smtp:
container_name: "smtp"
hostname: "smtp"
image: maildev/maildev:2.0.5
restart: on-failure
expose:
- "25" # smtp server
environment:
- MAILDEV_SMTP_PORT=25
- MAILDEV_MAIL_DIRECTORY=/mail
networks:
- dataverse
tmpfs:
- /mail:mode=770,size=128M,uid=1000,gid=1000

bootstrap:
container_name: "bootstrap"
hostname: "bootstrap"
image: ${CONFIGBAKER_IMAGE}
restart: "no"
networks:
- dataverse
volumes:
- ${PWD}/dv/bootstrap.exposed.env:/.env
command:
- sh
- -c
- "bootstrap.sh -e /.env dev"
depends_on:
dataverse:
condition: service_healthy

networks:
dataverse:
driver: bridge
31 changes: 31 additions & 0 deletions docker/docker-compose-test-all.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
version: "2.4"
services:
unit-tests:
container_name: unit-tests
image: python:${PYTHON_VERSION}-slim
environment:
BASE_URL: http://dataverse:8080
DV_VERSION: 6.2
networks:
- dataverse
volumes:
- ${PWD}:/pydataverse
- ../dv:/dv
command:
- sh
- -c
- |
# Fetch the API Token from the local file
export $(grep "API_TOKEN" "dv/bootstrap.exposed.env")
export API_TOKEN_SUPERUSER=$$API_TOKEN
cd /pydataverse
# Run the unit tests
python3 -m pip install --upgrade pip
python3 -m pip install pytest pytest-cov
python3 -m pip install -e .
python3 -m pytest > /dv/unit-tests.log
depends_on:
bootstrap:
condition: service_completed_successfully
9 changes: 9 additions & 0 deletions local-test.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Dataverse
DATAVERSE_IMAGE=docker.io/gdcc/dataverse:unstable
DATAVERSE_DB_USER=dataverse
DATAVERSE_DB_PASSWORD=secret
CONFIGBAKER_IMAGE=docker.io/gdcc/configbaker:unstable

# Services
POSTGRES_VERSION=15
SOLR_VERSION=9.3.0

0 comments on commit a72457c

Please sign in to comment.