Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

separate ports for multiple instance run #230

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 16 additions & 12 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,6 @@
name: Deploy DSpace

on:
workflow_run:
workflows: ["Docker images", "Erase database"]
types:
- completed
branches:
- dtq-dev
- dtq-dev-present
workflow_dispatch:

jobs:
Expand All @@ -25,12 +18,23 @@ jobs:

touch .env.dev-5 || true
echo DSPACE_REST_HOST=dev-5.pc > .env.dev-5
echo REST_URL=http://dev-5.pc:8080/server >> .env.dev-5
echo UI_URL=http://dev-5.pc >> .env.dev-5
echo DSPACE_REST_IMAGE=dataquest/dspace:dspace-7_x >> .env.dev-5
echo REST_URL=http://dev-5.pc:8085/server >> .env.dev-5
echo UI_URL=http://dev-5.pc:85 >> .env.dev-5
echo DSPACE_REST_IMAGE=dataquest/dspace:dtq-dev-7.5 >> .env.dev-5
echo DOCKER_OWNER=dataquest >> .env.dev-5
## echo NODE_ENV="development" >> .env.dev-5
echo DSPACE_UI_IMAGE="dataquest/dspace-angular:dspace-7_x" >> .env.dev-5
echo DSPACE_UI_IMAGE="dataquest/dspace-angular:dtq-dev-7.5" >> .env.dev-5
echo DSPACE_VER="dtq-dev-7.5" >> .env.dev-5
echo INSTANCE=5 >> .env.dev-5

echo S3_STORAGE=1 >> .env.dev-5
echo S3_ENABLED=true >> .env.dev-5
echo S3_RELATIVE_PATH=true >> .env.dev-5
echo S3_BUCKET=dev-5-dspace >> .env.dev-5
echo S3_SUBFOLDER=seven-five >> .env.dev-5
echo S3_ACCESS=${{ secrets.AMAZON_ACCESS }} >> .env.dev-5
echo S3_SECRET=${{ secrets.AMAZON_SECRET }} >> .env.dev-5
echo S3_REGION_NAME=eu-central-1 >> .env.dev-5

export ENVFILE=$(pwd)/.env.dev-5
./start.sh
./start.sh dspace-5
32 changes: 15 additions & 17 deletions .github/workflows/erase_db.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,24 @@ on:
workflow_dispatch:

jobs:
deploy:
restart_db:
env:
INSTANCE: 5
runs-on: dspace-dep-1
steps:
- uses: actions/checkout@v3
with:
submodules: false
- name: deploy
- name: stop and remove containers
run: |
cd $GITHUB_WORKSPACE/build-scripts/run/
pwd
touch .env.dev-5 || true
echo DSPACE_REST_HOST=dev-5.pc > .env.dev-5
echo REST_URL=http://dev-5.pc:8080/server >> .env.dev-5
echo UI_URL=http://dev-5.pc >> .env.dev-5
echo DSPACE_REST_IMAGE=dataquest/dspace:dspace-7_x >> .env.dev-5
echo DOCKER_OWNER=dataquest >> .env.dev-5
## echo NODE_ENV="development" >> .env.dev-5
echo DSPACE_UI_IMAGE="dataquest/dspace-angular:dspace-7_x" >> .env.dev-5

export ENVFILE=$(pwd)/.env.dev-5
docker stop dspacedb dspace dspace-angular
docker rm dspacedb dspace dspace-angular
docker volume rm dq-d7_pgdata
docker stop dspacedb$INSTANCE dspace$INSTANCE dspace-angular$INSTANCE
docker rm dspacedb$INSTANCE dspace$INSTANCE dspace-angular$INSTANCE
- name: remove volumes
if: '!cancelled()'
run: |
docker volume rm dspace-${{env.INSTANCE}}_pgdata dspace-${{env.INSTANCE}}_assetstore
- name: redeploy
if: '!cancelled()'
run: |
curl -H "Accept: application/vnd.github.everest-preview+json" -H "Authorization: token ${{ secrets.DEPLOY_DEV5_GH_ACTION_DISPATCH }}" --request POST https://api.github.com/repos/dataquest-dev/dspace-angular/actions/workflows/deploy.yml/dispatches --data "{\"ref\":\"refs/heads/internal/allow-several-concurrent-instances-in-docker\"}"

12 changes: 6 additions & 6 deletions build-scripts/run/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ docker pull $DSPACE_UI_IMAGE

pushd ../..
docker-compose --env-file $ENVFILE -f docker/docker-compose.yml -f docker/docker-compose-rest.yml pull
docker-compose --env-file $ENVFILE -p dq-d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml up -d --no-build
docker-compose --env-file $ENVFILE -p ${1:-unnamed_dspace} -f docker/docker-compose.yml -f docker/docker-compose-rest.yml up -d --no-build
popd

# Create admin user
# set DOCKER_OWNER to match our image (see cli.yml)
pushd ../..
docker-compose --env-file $ENVFILE -p dq-d7 -f docker/matomo-w-db.yml pull
docker-compose --env-file $ENVFILE -p dq-d7 -f docker/matomo-w-db.yml up -d --no-build
docker-compose --env-file $ENVFILE -p dq-d7 -f docker/cli.yml run --rm dspace-cli create-administrator -e test@test.edu -f admin -l user -p admin -c en -o dataquest
docker-compose --env-file $ENVFILE -p dq-d7 -f docker/cli.yml run --rm dspace-cli user --add -m user@test.edu -g meno -s priezvisko -l en -p user -o dataquest
docker-compose --env-file $ENVFILE -p dq-d7 -f docker/cli.yml run --rm dspace-cli version
docker-compose --env-file $ENVFILE -p ${1:-unnamed_dspace} -f docker/matomo-w-db.yml pull
docker-compose --env-file $ENVFILE -p ${1:-unnamed_dspace} -f docker/matomo-w-db.yml up -d --no-build
docker-compose --env-file $ENVFILE -p ${1:-unnamed_dspace} -f docker/cli.yml run --rm dspace-cli create-administrator -e test@test.edu -f admin -l user -p admin -c en -o dataquest
docker-compose --env-file $ENVFILE -p ${1:-unnamed_dspace} -f docker/cli.yml run --rm dspace-cli user --add -m user@test.edu -g meno -s priezvisko -l en -p user -o dataquest
docker-compose --env-file $ENVFILE -p ${1:-unnamed_dspace} -f docker/cli.yml run --rm dspace-cli version
popd
10 changes: 6 additions & 4 deletions docker/cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ version: "3.7"

services:
dspace-cli:
image: "${DOCKER_OWNER:-dspace}/dspace-cli:${DSPACE_VER:-dspace-7_x}"
image: "${DOCKER_OWNER:-dataquest}/dspace-cli:${DSPACE_VER:-dspace-7_x}"
container_name: dspace-cli
environment:
# Below syntax may look odd, but it is how to override dspace.cfg settings via env variables.
Expand All @@ -26,18 +26,20 @@ services:
# dspace.dir
dspace__P__dir: /dspace
# db.url: Ensure we are using the 'dspacedb' image for our database
db__P__url: 'jdbc:postgresql://dspacedb:5432/dspace'
db__P__url: 'jdbc:postgresql://dspacedb:543${INSTANCE}/dspace'
# solr.server: Ensure we are using the 'dspacesolr' image for Solr
solr__P__server: http://dspacesolr:8983/solr

solr__P__server: http://dspacesolr:898${INSTANCE}/solr

# S3
assetstore__P__index__P__primary: ${S3_STORAGE:-0}
assetstore__P__s3__P__enabled: ${S3_ENABLED:-false}
assetstore__P__s3__P__useRelativePath: ${S3_RELATIVE_PATH:-false}
assetstore__P__s3__P__bucketName: ${S3_BUCKET:-bucket-for-dspace}
assetstore__P__s3__P__subfolder: ${S3_SUBFOLDER:-}
assetstore__P__s3__P__awsAccessKey: ${S3_ACCESS:-}
assetstore__P__s3__P__awsSecretKey: ${S3_SECRET:-}
assetstore__P__s3__P__awsRegionName: ${S3_REGION_NAME:-}
assetstore__P__s3__P__awsRegionName: ${S3_REGION_NAME:-}

volumes:
- "assetstore:/dspace/assetstore"
Expand Down
29 changes: 14 additions & 15 deletions docker/docker-compose-rest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ services:
# DSpace (backend) webapp container
dspace:
restart: unless-stopped
container_name: dspace
container_name: dspace${INSTANCE}
environment:
# Below syntax may look odd, but it is how to override dspace.cfg settings via env variables.
# See https://github.com/DSpace/DSpace/blob/main/dspace/config/config-definition.xml
Expand All @@ -29,10 +29,9 @@ services:
dspace__P__ui__P__url: ${UI_URL:-http://127.0.0.1:4000}
dspace__P__name: 'DSpace Started with Docker Compose'
# db.url: Ensure we are using the 'dspacedb' image for our database
db__P__url: 'jdbc:postgresql://dspacedb:5432/dspace'
db__P__url: 'jdbc:postgresql://dspacedb:543${INSTANCE}/dspace'
# solr.server: Ensure we are using the 'dspacesolr' image for Solr
solr__P__server: http://dspacesolr:8983/solr

solr__P__server: http://dspacesolr:898${INSTANCE}/solr
#S3 config
assetstore__P__index__P__primary: ${S3_STORAGE:-0}
assetstore__P__s3__P__enabled: ${S3_ENABLED:-false}
Expand All @@ -42,16 +41,15 @@ services:
assetstore__P__s3__P__awsAccessKey: ${S3_ACCESS:-}
assetstore__P__s3__P__awsSecretKey: ${S3_SECRET:-}
assetstore__P__s3__P__awsRegionName: ${S3_REGION_NAME:-}

image: ${DSPACE_REST_IMAGE:-dataquest/dspace:dtq-dev-7.5}
depends_on:
- dspacedb
networks:
dspacenet:
ports:
- published: 8080
- published: 808${INSTANCE}
target: 8080
- published: 8000
- published: 800${INSTANCE}
target: 8000
stdin_open: true
tty: true
Expand All @@ -67,29 +65,30 @@ services:
- /bin/bash
- '-c'
- |
while (!</dev/tcp/dspacedb/5432) > /dev/null 2>&1; do sleep 1; done;
while (!</dev/tcp/dspacedb/543${INSTANCE}) > /dev/null 2>&1; do sleep 1; done;
/dspace/bin/dspace database migrate force
custom_run.sh
# DSpace database container
dspacedb:
restart: unless-stopped
container_name: dspacedb
container_name: dspacedb${INSTANCE}
environment:
PGDATA: /pgdata
image: dspace/dspace-postgres-pgcrypto
networks:
dspacenet:
ports:
- published: 5432
target: 5432
- published: 543${INSTANCE}
target: 543${INSTANCE}
stdin_open: true
tty: true
volumes:
- pgdata:/pgdata
command: -p 543${INSTANCE}
# DSpace Solr container
dspacesolr:
restart: unless-stopped
container_name: dspacesolr
container_name: dspacesolr${INSTANCE}
# Uses official Solr image at https://hub.docker.com/_/solr/
image: solr:8.11-slim
# Needs main 'dspace' container to start first to guarantee access to solr_configs
Expand All @@ -98,8 +97,8 @@ services:
networks:
dspacenet:
ports:
- published: 8983
target: 8983
- published: 898${INSTANCE}
target: 898${INSTANCE}
stdin_open: true
tty: true
working_dir: /var/solr/data
Expand All @@ -126,7 +125,7 @@ services:
cp -r -u /opt/solr/server/solr/configsets/dspace/search/* search
precreate-core statistics /opt/solr/server/solr/configsets/dspace/statistics
cp -r -u /opt/solr/server/solr/configsets/dspace/statistics/* statistics
exec solr -f -m 4g
exec solr -p 898${INSTANCE} -f -m 4g
volumes:
assetstore:
pgdata:
Expand Down
14 changes: 7 additions & 7 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ networks:
services:
dspace-angular:
restart: unless-stopped
container_name: dspace-angular
container_name: dspace-angular${INSTANCE}
environment:
DSPACE_UI_SSL: 'false'
DSPACE_UI_HOST: dspace-angular
DSPACE_UI_PORT: '4000'
DSPACE_UI_PORT: 400${INSTANCE}
DSPACE_UI_NAMESPACE: /
DSPACE_REST_SSL: 'false'
DSPACE_REST_HOST: ${DSPACE_REST_HOST:-localhost}
DSPACE_REST_PORT: 8080
DSPACE_REST_PORT: 808${INSTANCE}
DSPACE_REST_NAMESPACE: /server
image: ${DSPACE_UI_IMAGE:-dataquest/dspace-angular:dspace-7_x}
build:
Expand All @@ -32,9 +32,9 @@ services:
networks:
dspacenet:
ports:
- published: 4000
target: 4000
- published: 9876
target: 9876
- published: 400${INSTANCE}
target: 400${INSTANCE}
- published: 987${INSTANCE}
target: 987${INSTANCE}
stdin_open: true
tty: true
Loading