Git Product home page Git Product logo

dspace-docker-images's Introduction

DSpace-Docker-Images


⚠️ DEPRECATED. This repository of Docker resources is ONLY valid for running DSpace 4.x and/or 5.x in a Docker-based development environment. DSpace 6.x and 7.x Docker compose files have been moved into the main https://github.com/DSpace/DSpace codebase (any old 6.x or 7.x compose files in this repository are unsupported & unmaintained)


This repository contains docker resources for the DSpace project.

  • Docker Compose files for DSpace 4x and 5x ONLY
  • Special purpose Docker Compose and Dockerfiles for DSpace
  • Tutorials for running DSpace with Docker and Docker Compose

References

  • Docker simplifies the installation requirements for hosting an application by running an application image (docker image) within a containerized environment (docker container).
  • Docker Hub is a registry of published application images.
  • The DSpace project has published a set of DSpace Images on DockerHub to simplify testing and development of the DSpace platform.
    • The project has automated the build of Docker Images for each of the supported branches of the DSpace code base (build details).
  • A Docker compose file is used to orchestrate the launch of interdependent containers.
    • For DSpace 4, 5 and 6, those containers are the database and tomcat (xmlui, jspui)
    • For DSpace 7, the containers are the database, tomcat (for the REST api), and Node (running the Angular UI)
  • The Docker compose file manages the allocation of docker volumes which persist the contents of the DSpace database and the DSpace assetstore.

Why Publish DSpace Images for Docker?

  • To enable users (developers and repository mangagers) to easily test the latest code from each of the supported branches of DSpace
  • To enable users (developers and repository mangagers) to easily test the code from each published release of DSpace
  • To simplify the installation requirements for developers wishing to contribute code to the DSpace platform
  • To simplify the management of multiple versions of DSpace (DSpace 5, 6, and 7) on a user's desktop
  • To simplify the management of applicaiton dependencies for DSpace 7 (database, REST API, Angular UI) on a user's desktop
  • Note: These images are intended for DSpace development purposes and are not appropriate for production use.

Workshops

Tutorials

References


Docker Images

This table lists the special purpose docker images supported by the DSpace project.

Image Name Repo Dockerfile Branches Comments
dspace/dspace-dependencies DSpace/DSpace Dockerfile.dependencies 4-7 Base image that optimizes the build of DSpace images by caching maven downloads
dspace/dspace DSpace/DSpace Dockerfile.* 4-7 Docker web app container
dspace/dspace-cli DSpace/DSpace Dockerfile.cli.* 6-7 Docker CLI container
dspace/dspace-postgres-pgcrypto:latest DSpace/DSpace dspace/src/main/docker/dspace-postgres-pgcrypto/Dockefile 5-7 Database container
dspace/dspace-postgres-pgcrypto:loadsql DSpace/DSpace dspace/src/main/docker/dspace-postgres-pgcrypto-curl/Dockefile 5-7 Database container that downloads and ingests a SQL dump
dspace/dspace-postgres-4x DSpace-Labs/DSpace-Docker-Images dockerfiles/dspace-postgres-4x/Dockefile 4 Database container
dspace/dspace-solr DSpace/DSpace dspace/src/main/docker/solr/Dockerfile 7 Standalone SOLR instance with DSpace schemas loaded
dspace/dspace-angular DSpace/DSpace-angular Dockerfile 7 Angular UI

Compose files

The following Docker Compose files can be used to simplify the management of DSpace components allowing a user to run an end-to-end DSpace instance from their desktop.

Version Scenario Repo Command line Comments
7x REST Run published images DSpace/DSpace docker-compose -p d7 up -d
7x REST Build REST DSpace/DSpace docker-compose -p d7 up -d --build
7x UI+REST Run published images DSpace/DSpace docker-compose -p d7 -f docker-compose.yml -f dspace/src/main/docker-compose/docker-compose-angular.yml up -d Can be run from DSpace or DSpace-angular
7x UI+REST Run published images DSpace/DSpace-angular docker-compose -p d7 -f docker-compose.yml -f docker/docker-compose-rest.yml up -d Can be run from DSpace or DSpace-angular
7x UI+REST Build REST DSpace/DSpace docker-compose -p d7 -f docker-compose.yml -f dspace/src/main/docker-compose/docker-compose-angular.yml up -d
7x UI+REST Build Angular DSpace/DSpace-angular docker-compose -p d7 -f docker-compose.yml -f docker/docker-compose-rest.yml up -d --build
7x UI+REST Build REST & Angular DSpace/DSpace docker-compose -p d7 up -d --build 2 step process
DSpace/DSpace-angular docker-compose -p d7 up -d --build 2 step process
6x Run published images DSpace/DSpace docker-compose -p d6 up -d
6x Build images DSpace/DSpace docker-compose -p d6 up -d --build
5x Run published images DSpace-Labs/DSpace-Docker-Images : docker-compose-files/dspace-compose docker-compose -p d5 -f docker-compose.yml -f d5.override.yml up -d
5x Build images DSpace-Labs/DSpace-Docker-Images : docker-compose-files/dspace-compose docker-compose -p d5 -f docker-compose.yml -f d5.override.yml -f src.override.yml up -d --build
4x Run published images DSpace-Labs/DSpace-Docker-Images : docker-compose-files/dspace-compose docker-compose -p d4 -f docker-compose.yml -f d4.override.yml up -d
4x Build images DSpace-Labs/DSpace-Docker-Images : docker-compose-files/dspace-compose docker-compose -p d4 -f docker-compose.yml -f d4.override.yml -f src.override.yml up -d --build
Other Special Cases DSpace-Labs/DSpace-Docker-Images : docker-compose-files/dspace-compose See Special Cases

Main DSpace Compose Files

DSpace Compose Files

  • Base DSpace Compose File: docker-compose.yml
  • DSpace 7 Compose File: d7.override.yml
  • DSpace 6 Compose File: d6.override.yml
  • DSpace 5 Compose File: d5.override.yml
  • DSpace 4 Compose File: d4.override.yml
  • DSpace RDF Compose File: rdf.override.yml
  • Oracle Compose File: oracle.override.yml
  • DSpace Local Build Compose File: src.override.yml

Special Purpose Compose files

Compose File Host Image Notes
dspace-angular dspace/dspace-angular-bare
dspacedb atmire/dspace-oracle
dspace dspace/dspace

More information

For more information, join our #dspace-docker channel on Dspace Slack.

DSpace Docker Wiki Page

dspace-docker-images's People

Contributors

j4bbi avatar jitka avatar kshepherd avatar mohideen avatar mw3000 avatar pnbecker avatar ptrottier avatar schnittstabil avatar tdonohue avatar terrywbrady avatar terrywbradyc9 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dspace-docker-images's Issues

Manage database and assetstore volumes for different versions of DSpace

Ideally, I would like to use the same Docker Compose file to start up a DSpace 5, a DSpace 6 and a DSpace 7 instance of DSpace.

In order to do this, I would like to manage separate volumes for the database and the dspace-install directories and intelligently manage those volumes.

I wounder if an ENV variable could be introduced when setting the volume names in the Docker Compose file to assist with the management of this information.

How to test DSpace 7 External Solr in Docker

  • Checkout PR DSpace/DSpace#2058 to your local DSpace repo
  • Set DSPACE_SRC to your DSpace repo directory
export DSPACE_SRC=$(pwd)
cd DSpace-Docker-Images/docker-compose-files/dspace-compose
  • Build PR 2058 into a local image dspace/dspace:dspace-local
docker-compose -p d7 -f docker-compose.yml -f d7solr.override.yml -f src.override.yml build
  • Start DSpace 7 in Docker with an externalized solr service using the image you built
docker-compose -p d7 -f docker-compose.yml -f d7solr.override.yml -f src.override.yml up -d
  • Note: Once PR 2058 is merged, d7solr.override.yml will become d7.override.yml.

DSpace composer 4.9 gives error

Having followed the instructions and set DSPACE_VER=dspace-4_9 and $DPROJ=d4

having run : docker-compose -p $DPROJ up
the database seems to initialise and lots of logging is coming from catalina, but then:

dspace_1    |  INFO [org.dspace.servicemanager.DSpaceKernelImpl] DSpace kernel startup completed in 1594 ms and registered as MBean: org.dspace:name=c778448b-c238-4a75-bf16-ee78694931af,type=DSpaceKernel
dspace_1    |  INFO [org.dspace.core.ConfigurationManager] Loading provided config file: /dspace/config/dspace.cfg
dspace_1    |  INFO [org.dspace.core.ConfigurationManager] Using dspace provided log configuration (log.init.config)
dspace_1    |  INFO [org.dspace.core.ConfigurationManager] Loading: /dspace/config/log4j.properties
dspacedb_1  | 2018-09-18 13:47:14.238 UTC [85] ERROR:  syntax error at or near ")" at character 22
dspacedb_1  | 2018-09-18 13:47:14.238 UTC [85] STATEMENT:  INSERT INTO webapp ( ) VALUES ( ) RETURNING null
dspace_1    | Loading catalog: file:/usr/local/tomcat/work/Catalina/localhost/xmlui/cocoon_xml_resolver_entities/catalog
dspace_1    | 18-Sep-2018 13:47:16.085 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/xmlui] has finished in [8,824] ms
dspace_1    | 18-Sep-2018 13:47:16.085 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/jspui]
dspace_1    | 18-Sep-2018 13:47:22.138 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
dspace_1    | log4j:WARN No appenders could be found for logger (org.dspace.servicemanager.DSpaceKernelInit).
dspace_1    | log4j:WARN Please initialize the log4j system properly.
dspace_1    | log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
dspace_1    | INFO: Loading provided config file: /dspace/config/dspace.cfg
dspace_1    | INFO: Using dspace provided log configuration (log.init.config)
dspace_1    | INFO: Loading: /dspace/config/log4j.properties
dspacedb_1  | 2018-09-18 13:47:23.902 UTC [87] ERROR:  syntax error at or near ")" at character 22
dspacedb_1  | 2018-09-18 13:47:23.902 UTC [87] STATEMENT:  INSERT INTO webapp ( ) VALUES ( ) RETURNING null
dspace_1    | 18-Sep-2018 13:47:23.970 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/jspui] has finished in [7,885] ms
dspace_1    | 18-Sep-2018 13:47:23.970 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/rest]
dspace_1    | 18-Sep-2018 13:47:29.545 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
dspace_1    | INFO: Loading provided config file: /dspace/config/dspace.cfg
dspace_1    | INFO: Using dspace provided log configuration (log.init.config)
dspace_1    | INFO: Loading: /dspace/config/log4j.properties
dspace_1    | 18-Sep-2018 13:47:30.811 INFO [localhost-startStop-1] com.sun.jersey.api.core.PackagesResourceConfig.init Scanning for root resource and provider classes in the packages:
dspace_1    |   org.dspace.rest
dspace_1    | 18-Sep-2018 13:47:30.834 INFO [localhost-startStop-1] com.sun.jersey.api.core.ScanningResourceConfig.logClasses Root resource classes found:
dspace_1    |   class org.dspace.rest.HandleResource
dspace_1    |   class org.dspace.rest.BitstreamResource
dspace_1    |   class org.dspace.rest.CommunitiesResource
dspace_1    |   class org.dspace.rest.RestIndex
dspace_1    |   class org.dspace.rest.ItemsResource
dspace_1    |   class org.dspace.rest.CollectionsResource
dspace_1    | 18-Sep-2018 13:47:30.834 INFO [localhost-startStop-1] com.sun.jersey.api.core.ScanningResourceConfig.init No provider classes found.
dspace_1    | 18-Sep-2018 13:47:30.898 INFO [localhost-startStop-1] com.sun.jersey.spi.spring.container.servlet.SpringServlet.getContext Using default applicationContext
dspace_1    | 18-Sep-2018 13:47:30.902 INFO [localhost-startStop-1] com.sun.jersey.server.impl.application.WebApplicationImpl._initiate Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM'
dspace_1    | 18-Sep-2018 13:47:31.532 WARNING [localhost-startStop-1] com.sun.jersey.spi.inject.Errors.processErrorMessages The following warnings have been detected with resource and/or provider classes:
dspace_1    |   WARNING: A sub-resource method, public org.dspace.rest.common.Community[] org.dspace.rest.CommunitiesResource.list(java.lang.String), with URI template, "/", is treated as a resource method
dspace_1    |   WARNING: A sub-resource method, public org.dspace.rest.common.Collection[] org.dspace.rest.CollectionsResource.list(java.lang.String,java.lang.Integer,java.lang.Integer), with URI template, "/", is treated as a resource method
dspace_1    | 18-Sep-2018 13:47:31.540 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/rest] has finished in [7,570] ms
dspace_1    | 18-Sep-2018 13:47:31.556 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
dspace_1    | 18-Sep-2018 13:47:31.585 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
dspace_1    | 18-Sep-2018 13:47:31.589 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 49792 ms
dspacedb_1  | 2018-09-18 13:47:49.618 UTC [88] ERROR:  relation "community" does not exist at character 15
dspacedb_1  | 2018-09-18 13:47:49.618 UTC [88] STATEMENT:  SELECT * FROM community WHERE NOT community_id IN (SELECT child_comm_id FROM community2community) ORDER BY name

Something goes wrong in the database. There are three different errors logged from the database (dspacedb_1), the first one repeated twice.

http://localhost:8080/jspui/ - has an Internal error page

Create Dockerfile variants to illustrate tomcat running on a specific version of Linux

@pnbecker has embedded a sample Dockerfile in https://jira.duraspace.org/browse/DS-4160 to illustrate a bug in a specific version of Linux. I recommend that we implement something like this with the following conventions.

  • follow the installation directories used in the DSpace/DSpace Dockerfile
  • rely on an external postgres instance rather than embedding this locally
  • add this Dockerfile to this repo in the Dockerfiles directory

The goal should be to make the image produced from this dockerfile to be swap-able with the dspace/dspace images referenced in the DSpace Docker compose files.

Create a unique volume for each solr repo data directory

We currently save /dspace/solr to the solr volume.

Because this contains both the conf and data directories for each repo, this could interfere with updates to solr conf files.

Our docker compose files should persist each solr data directory into its own repo.

  • solr_search
  • solr_statistics
  • solr_oai
  • solr_authority

Provide optional ENTRYPOINT to set administrator and kick off AIP ingest

We currently maintain a separate docker compose file to support ingest of content into a DSpace instance.

https://github.com/DSpace-Labs/DSpace-Docker-Images/tree/master/docker-compose-files/dspace-ingest-compose

Create optional ENTRYPOINT in DSpace Dockerfile

Rather than using an alternate compose file, I recommend the following changes.

In the DSpace Dockerfile, provide one (or more) optional entrypoint scripts that provide the functionality that currently resides here:

https://github.com/DSpace-Labs/DSpace-Docker-Images/tree/master/add-ons/mount_ingest_tools

Consider installing these to /entrypoint

Provide optional call to alternate ENTRYPOINT in DSpace docker-compose files

# Uncomment the following line to trigger the init of DSpace solr repos
entrypoint: "/entrypoint/createAdmin.sh"

Possible ENTRYPOINT options

  • Create Administrator
    • Pass in $ADMIN_EMAIL, $ADMIN_PASS, $ADMIN_FNAME, $ADMIN_LNAME via docker-compose.yml
  • Create Administrator and ingest AIP
    • perform create admin as described above
    • download $AIPZIP file containing AIP's and ingest each AIP

Questions

  • What other tasks would be useful to run on startup?

Error in dspacesolr init

o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: no field name specified in query and no default specified via 'df' param

Create a docker-compose variant for Oracle testing

How could we re-use the existing published images for DSpace?

The compose file will bring in the proper database image.

We will need to insert the right Oracle properties into local.cfg before tomcat is started.

Could we create a volume to override local.cfg?

Update `ingestAIP.sh` to do a SITE AIP import?

Just noting that the ingetAIP.sh script currently does its own parsing/looping over Community/Collection/Item AIPs (instead of restoring from a Site-level AIP), e.g.
https://github.com/DSpace-Labs/DSpace-Docker-Images/blob/master/add-ons/mount_ingest_tools/ingestAIP.sh

We may want to consider updating to do an import starting at the SITE level AIP (this is the same command we use on demo.dspace.org to do a full site "reset"):

/dspace/bin/dspace packager -u -r -a -f -t AIP -e [email protected] -o skipIfParentMissing=true -o createMetadataFields=true SITE@[handle].zip

The extra benefit here is that this will also create any permissions/users/groups that are stored in the SITE AIP. It also includes flags to auto-create any missing/custom metadata fields, and to skip any "parent not found errors".

The full reset script for demo.dspace.org site is in GitHub here (in case it's useful to see the entire restore process run on demo): https://github.com/DSpace-Labs/demo.dspace.org-site/blob/master/scripts/linux/reset-dspace-content#L234

Pass buildNumber and branch to DSpace Docker builds

When the "dspace version" command is run, "SCM revision" and "SCM branch" are set. These values are not getting set in our Docker builds. I wonder if there is a way to pass these values through environment variables. Do you know what mechanism grabs these values?

Kim Shepherd [12:56 PM]
@terrywbrady the file that holds the vars is dspace-api/src/main/resources/scm.properties

branch = ${scmBranch}```
and it seems to be maven that populates it, as the `target` version in dspace-api/target/classes/scm.properties looks like this
```revision = 929312d7e8728d33d3425e2b106c444444ea0468
branch = DS-4136_oai_import_master```
so, not sure how docker is missing out.. the maven build is fairly straight forward isn't it?
(you can see the full class at `org.dspace.app.util.Version`

Mark Wood [1:13 PM]
Yes, Maven creates that file for us.  The resource plugin fills in values from the effective POM while copying the template over to target.  It's not easy to see, but see dspace-api/pom.xml (edited) 
Likewise Ant write its version into 'ant.properties'.

Kim Shepherd [1:54 PM]
hm, interestingly, though  my docker-dev-compose instance works ok (it's an old one) for `dspace version`, it lists each webapp in Applications at least 10 times.. i wonder if there's some caching in the UtilServiceFactory stuff, or some filtering/deduplication needed in the results for that...

Mark Wood [1:56 PM]
That's an old problem that I need to fix someday.  The duplicates for webapp X *should* all be deleted when X starts, but for some reason they persist.
https://jira.duraspace.org/browse/DS-3000

Terry Brady [2:06 PM]
Since the published images are built on Dockerhub, those values are probably not set.  I will add an issue to our Docker project to find a way to set these values.

Based on this report, I would expect a locally built instance to possibly have the branch.

Sign in/Sign up/forgot password

Hello,

I have installed the DSpace7 using this image. Its showing me REST and angular interface on browser.

When i try to sign in/sign up or forgot password, its just come back to home page. There are errors in the console. I am uploading the image as well.
I have installed the docker on window 10 professional. i am using the docker machine ip not the localhost.

image

image

image

DSpace 7 Docker Compose File

Create a docker compose file that will run 3 containers

  • database
  • dspace tomcat
  • dspace angular

Re-use as much of the DSpace 6 docker file as possible

Using Docker with DSpace - Overview Diagram

dspacedocker

Images

  • dspacedb
    • postgres + pgcrypto
  • dspace-tomcat
    • tomcat instance + ant
    • user can mount a DSPACE_SRC directory and deploy from there
    • requires an ant deploy to become usable (otherwise tomcat will start with no DSpace webapps)
  • dspace
    • intended for use by DSpace 6 or DSpace 7
    • tomcat instance with a fully built dspace directory
    • includes local.cfg file
    • DSpace code is cloned and built during image build
  • dspace-angular
    • dspace angular image

Image Tag Names

  • dspace/dspace:dspace-6.3
    • Tagged when the release is generated
  • dspace/dspace:dspace-6_x
    • Generated weekly (or on demand)
  • dspace/dspace:dspace-6_x-pr1111
    • Generated by travis when a PR is created
    • Or, should this be a separate image in order to ensure a meaningful "latest" image
  • dspace/dspace:dspace-6_x-feature
    • Generated manually to illustrate the workings of a combined set of related PRs
  • latest
    • how do we manage the "latest" tag if prs may be generated more frequently?

Compose Files

  • Question: should compose files be managed in a separate directory, or within a folder containing a Dockerfile? What is the best practice to follow?
  • dspace-dev-compose
    • dspace-postgres-pgcrypto
    • dspace-tomcat
  • dspace-compose
    • dspace-postgres-pgcrypto
    • dspace
  • dspace7-compose
    • dspacedb
    • dspace:master
    • dspace-angular

Directories

  • /dspace
    • DSpace install directory
    • The contents of this directory will be written to a docker volume
  • /dspace-src (container image)
    • When the image is built, DSpace will be cloned to this directory.
    • A local.cfg file will be written here
    • Mvn will be initiated from this directory
  • /dspace-src (user build dir, mounted to DSPACE_SRC)
    • If a user wants to build/deploy changes into a docker image, this could serve that purpose
    • When docker is used in this manner, should an entirely different image be used?
    • What name should be assigned to such an image?
  • /dspace-aip (user provided directory for providing aip files to ingest)
    • The contents of this folder are only needed once.
    • Should this be a volume mount, or should the content be copied into this folder when needed?
  • /dspace-tools
    • Would it be a good idea to provide tools such as this?
    • Scripts copied into the docker image to simplify the use of the container
    • loadAip.sh - create administrator and load AIP files found in /dspace-aip
    • deployDSpace.sh - run ant deploy, restart tomcat (if that does not kill the container)
    • buildDSpace.sh - should we create an image with mvn + ant + tomcat?

Question: how could we make it simple for anyone to test a specific PR from Docker?

Would it be possible to make the instructions so simple that any repository manager with a local Docker instance could test a specific version of the code?

When travis performs the automated build of code for a specific PR, could the built assets be retrievable for quick testing? Or, would the download of built assets be so slow that it would be advisable just to build locally?

If a user must build locally, what can we do to make it as easy as possible?

Consider externalizing only the assetstore and not the whole /dspace dir

The current dockerfile has made the entire dspace-install directory into a volume.

This can be convenient because it allows you to stop and start a container and the state of the solr directories is retained.

Because the installed code is in a volume, if you swap versions (dspace-5_x to dspace-5.9), the code is not updated.

Consider creating separate volumes for the assetstore and for solr. Let the code remain within the image.

Set environment variables in compose files rather than relying only on local.cfg for overrides

The config framework introduced in DSpace 6 allows environment variables to override config values set in dspace.cfg or local.cfg.

I did some testing of this with one of our Docker compose files.

The environment variable did get passed into tomcat and worked as expected.

When running a command line task using docker exec dspace bash, the environment variables were not carried into the shell environment.

Create docker-compose files that include a SwordV1 and SwordV2 client for DSpace

Terry Brady [7:52 AM]
Since I have never seen Sword in action, it would be interesting to create a docker compose file that runs a sword client alongside DSpace. Perhaps both a v1 and v2.

Does such a client exist?

Tim Donohue [7:53 AM]
DSpace XMLUI has a built in SWORDv1 client. But, yes, I agree
I'm not aware of many SWORDv2 clients -- there surely are some, but I think that's part of the reason why SWORDv1 is still in wide use

James Creel [7:54 AM]
The use case for the XMLUI SWORDv1 client isn't super strong, as I recall. You could also do export/import, harvesting, other things.
But Vireo uses SWORDv1

Tim Donohue [7:54 AM]
SWORDv2 implementations: http://swordapp.org/sword-v2/sword-v2-implementations/

James Creel [7:54 AM]
Just a curl request and a METS structure sitting next door could suffice for demonstration

Tim Donohue [7:55 AM]
Yes, technically you can send content to either SWORDv1 or SWORDv2 via curl. We have examples of both in our DSpace Docs

Mark Wood [7:55 AM]
I'm beginning to imagine a bunch of projects standing around, all thinking "SWORDv1 should be deprecated," but none of them wanting to be the first to do so.

Tim Donohue [7:56 AM]
Example curl commands for SWORDv1 are in our docs here: https://wiki.duraspace.org/display/DSDOC5x/SWORDv1+Server#SWORDv1Server-DeposittoSWORDServer

Mark Wood [7:56 AM]
Meanwhile ResourceSync is hovering in the background, looking for an opening.

Terry Brady [7:56 AM]
I started a github issue. I will copy this notes there. #73

Tim Donohue [7:56 AM]
Example curl commands for SWORDv2 are in our docs here: https://wiki.duraspace.org/display/DSDOC6x/SWORDv2+Server#SWORDv2Server-DeposittoSWORDv2Server

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.