SlideShare a Scribd company logo
DOCKER FOR DSPACE – LOWERING THE BARRIER OF
ENTRY FOR NEW CONTRIBUTORS
OR 2019
Terry Brady, Georgetown University Library
Pascal Becker, The Library Code
Please complete the Pre-work (Docker Install), if you
have not already done so.
http://bit.ly/dspace-docker
WHO WE ARE
TERRY BRADY
So ware Developer, Georgetown University Library
DSpace Committer
https://github.com/terrywbrady/info
PASCAL BECKER
CEO and founder of The Library Code GmbH
DSpace Committer
Member of DSpace's Leadership and Steering
Groups
https://www.the-library-code.de/
ABOUT THIS WORKSHOP
BACKGROUND
2018 the DSpace for Docker was created
Start any version of DSpace from your desktop
(Windows 10, MacOS, Linux)
Helps newcomers to get a test system running
quickly
Helps developers to easily spin up development
environments
WHO YOU ARE (WE THINK)
People who want to ...
get a sneak peak on DSpace 7
get started with Docker
know if Docker can help them with their
development environment
learn how they can get started with DSpace
become more involved in the DSpace project
WORKSHOP OBJECTIVES
Understand basics of Docker (Images, Containers,
Volumes, ...)
What Docker images have been published for
DSpace
How to install Docker
How to launch DSpace 6 and DSpace 7 using Docker
How to participate in DSpace testing using Docker
Exchanging tips and ideas about DSpace and Docker
MOTIVATION
IMAGINE YOU COULD...
...create a DSpace installation with one single
command
...install and start a new instance of any version of
DSpace in under 3 minutes
...wouldn't need to have to think about database
versions, operating systems, ordering virtual hosts,
and further more.
DEMO: RUNNING DSPACE 7
It takes 2-3 minutes to start up
docker-compose -p d7 -f docker-compose.yml -f d7.override.yml up -d
Workshop Docker for DSpace
Workshop Docker for DSpace
Workshop Docker for DSpace
WHAT IS POSSIBLE WITH DSPACE AND
DOCKER?
Try out a DSpace feature without impacting your
existing instance
Preview an enhancement or new version
Give input on the implementation
Verify a bug fix before it is released
Onboard new developers and repository managers
to the project
and so much more...
DSPACE DOCKER IMAGES
DSpace 7x, DSpace 6x, DSpace 5x, DSpace 4x
Install content from DSpace AIP files on creation
DSpace Database
DSpace Angular UI
Published to
See
https://hub.docker.com/u/dspace
DSpace Docker Tutorial Overview
CAN I USE YOUR IMAGES IN
PRODUCTION?
Not yet!
Current images focus on testing and development
We want to gain more experience on our own
Do you want to help to create images for
production? Contact us on slack!
INSTALL INSTRUCTIONS (RECAP)
Most attendees will have completed this step already
Install Docker Desktop
Install a terminal for running docker (Windows only)
Download DSpace Docker Compose files
INSTALLATION INSTRUCTIONS
Windows 10 Setup
MacOS Setup
Linux Desktop Setup
EXERCISE 1: VERIFY INSTALLATION
Exercise 1: Verify Installation
DOCKER CONCEPTS
Basic idea of Docker
Docker Images
Docker Containers
Docker vs. virtualization
Docker Volumes
WHY DOCKER?
Imagine you could pack an application's complete
environment into one package easily.
WHY DOCKER?
One script to start up your service / application
All necessary services are started at once
(database, web server)
Runs identically on any desktop or server that
supports Docker
Windows, MacOS or Linux!
Replicable process
Destroy and recreate your service easily
DOCKER IMAGES
 An image is an executable package
that includes everything needed to run
an application - the code, a runtime,
libraries, environment variables, and
configuration files.
- Docker Documentation, Get started with Docker, Part 1
Orientation
DOCKER IMAGES (CONTINUED)
An Image is
A snapshot of an application and its complete
environment
Can be shared and downloaded
Can be published
Online on
Or in a private repository
docker hub
DOCKER CONTAINERS
A running version of a docker image
Like a small server running within your desktop
Containing a complete environment
Containing an application or service
Started and stopped by Docker
Runs independently of other applications
A CONTAINER'S LIFETIME
Images package a complete environment
Start a new container from an image is very easy
A Container is just like a running version of an image
Delete containers when they stop
Create a new container everytime a service starts
DOCKER VOLUMES
If you delete a container when it stops, how do you
persist data?
Volumes can be (re-)used when a container starts
Volumes outlive the containers that uses them
Like a really small disk drive or network drive
Data you wish to save must be stored in a volume
EXERCISE 2: DOCKER IMAGES AND
CONTAINERS
Exercise 2: Docker Images and Containers
DOCKER-COMPOSE
DOCKER COMPOSE
An image defines a service and its environment
Today's applications are composed out of multiple
services
We need information about how to run an
application
Is it composed out of multiple services?
How do they depend on each other?
Which ports are used?
How to start and stop it all together?
DOCKER-COMPOSE.YAML
Docker Compose is a command to control
environments of multiple containers that work
together
Docker Compose defines information within
configuration files about how to run an application
Docker Compose builds complex docker commands
for you to start up multiple services in the right
order
POSSIBILITIES OF DOCKER-COMPOSE
Docker Compose can describe complex setups
Defines which services to run in which order
Configures volumes, ports, network structure,
limits, environment variables, ...
Can apply limits regarding CPU and/or RAM usage
docker-compose contains shortcuts to interact with
the containers it started
DOCKER COMPOSE AND DSPACE
The DSpace project heavily uses docker compose
We have several docker-compose files that can be
used together
Some parts of a docker compose file gets overridden
by another docker-compose file
That allows us to easily tweak the instance of
DSpace you're running
RUNNING DSPACE 6 WITH DOCKER-
COMPOSE
docker-compose -p d6 -f docker-compose.yml -f d6.override.yml up -d
docker-compose -p d6 -f docker-compose.yml -f d6.override.yml down
Docker Compose File
version: "3.7"
services:
dspacedb:
image: dspace/dspace-postgres-pgcrypto
# Note that a separate image exists for DSpace 4x
# image: dspace/dspace-postgres-4x
container_name: dspacedb
environment:
- PGDATA=/pgdata
volumes:
- pgdata:/pgdata
- "../../add-ons/dspace-docker-tools:/dspace-docker-tools"
networks:
- dspacenet
tty: true
stdin open: true
OVERRIDING WITH DOCKER-COMPOSE
command to start DSpace 5:
DSpace's default image:
d5.override.yaml:
docker-compose -p d5 -f docker-compose.yml -f d5.override.yml pull
dspace:
image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-6_x-jdk8-te
dspace:
image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-5_x-jdk8-te
EXERCISE 3A: UNDERSTANDING DOCKER
COMPOSE
Exercise 3A: Understanding Docker Compose
EXERCISE 3B: RUNNING DSPACE 6 WITH
DOCKER-COMPOSE
Exercise 3B: Running DSpace 6 with Docker-
Compose
EXERCISE 4: RUNNING DSPACE 7 WITH
DOCKER-COMPOSE
Exercise 4: Running DSpace 7 with Docker-Compose
ADVANCED TOPICS
Our ideas
Building code changes with Docker Composse
Running DSpace 6 and DSpace 7 on different ports
Your ideas
Anything specific you would like us to cover?
EXERCISE 5: ADVANCED TOPICS
Exercise 5: Advanced Topics
WE NEED YOUR HELP
Try it yourself, give us feedback on the
documentation
Join the #dspace-docker Slack Channel
Help us assemble assets to distribute in AIP files
WHAT WE NEED
Curating and Assembling
Public domain / restriction free
Real repository content (but not very large)
Small PDFs
Small image
Realistic metadata
AIP Resources
DISCUSSION
Could you imagine using this capability?
What would be needed to make this compelling for
the repository manager community?
FEEDBACK/QUESTIONS?
What ideas do you have?
What questions do you have?
REFERENCE LINKS
Join the Slack Channel
DSpace Docker Tutorial Overview
Docker Documentation
Docker Compose Documentation
#dspace-docker
THANK YOU
Terry Brady, Georgetown University Library
Pascal Becker, The Library Code
http://bit.ly/dspace-docker

More Related Content

What's hot

Getting started with DSpace 7 REST API
Getting started with DSpace 7 REST APIGetting started with DSpace 7 REST API
Getting started with DSpace 7 REST API
4Science
 
Hadoop Security Architecture
Hadoop Security ArchitectureHadoop Security Architecture
Hadoop Security Architecture
Owen O'Malley
 
FAIRy stories: the FAIR Data principles in theory and in practice
FAIRy stories: the FAIR Data principles in theory and in practiceFAIRy stories: the FAIR Data principles in theory and in practice
FAIRy stories: the FAIR Data principles in theory and in practice
Carole Goble
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & Configuration
DuraSpace
 
DSpace-CRIS technical level introduction
DSpace-CRIS technical level introductionDSpace-CRIS technical level introduction
DSpace-CRIS technical level introduction
4Science
 
METS Metadata for Complete Beginners
METS Metadata for Complete BeginnersMETS Metadata for Complete Beginners
METS Metadata for Complete Beginners
stuartayeates
 
DSpace-CRIS: new features and contribution to the DSpace mainstream
DSpace-CRIS: new features and contribution to the DSpace mainstreamDSpace-CRIS: new features and contribution to the DSpace mainstream
DSpace-CRIS: new features and contribution to the DSpace mainstream
4Science
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Chris Richardson
 
FIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LD
FIWARE
 
DSpace Training Presentation
DSpace Training PresentationDSpace Training Presentation
DSpace Training Presentation
Thomas King
 
Introduction to Apache Sqoop
Introduction to Apache SqoopIntroduction to Apache Sqoop
Introduction to Apache Sqoop
Avkash Chauhan
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
CodeOps Technologies LLP
 
Elastic search Walkthrough
Elastic search WalkthroughElastic search Walkthrough
Elastic search Walkthrough
Suhel Meman
 
Infrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using TerraformInfrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using Terraform
Adin Ermie
 
Terasort
TerasortTerasort
Terasort
hhyin
 
Introduction to DSpace
Introduction to DSpaceIntroduction to DSpace
Introduction to DSpace
Bharat Chaudhari
 
Open stack
Open stackOpen stack
Open stack
svm
 
Guía para implementar Koha
Guía para implementar KohaGuía para implementar Koha
Terraform 101
Terraform 101Terraform 101
Terraform 101
Pradeep Loganathan
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2
FIWARE
 

What's hot (20)

Getting started with DSpace 7 REST API
Getting started with DSpace 7 REST APIGetting started with DSpace 7 REST API
Getting started with DSpace 7 REST API
 
Hadoop Security Architecture
Hadoop Security ArchitectureHadoop Security Architecture
Hadoop Security Architecture
 
FAIRy stories: the FAIR Data principles in theory and in practice
FAIRy stories: the FAIR Data principles in theory and in practiceFAIRy stories: the FAIR Data principles in theory and in practice
FAIRy stories: the FAIR Data principles in theory and in practice
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & Configuration
 
DSpace-CRIS technical level introduction
DSpace-CRIS technical level introductionDSpace-CRIS technical level introduction
DSpace-CRIS technical level introduction
 
METS Metadata for Complete Beginners
METS Metadata for Complete BeginnersMETS Metadata for Complete Beginners
METS Metadata for Complete Beginners
 
DSpace-CRIS: new features and contribution to the DSpace mainstream
DSpace-CRIS: new features and contribution to the DSpace mainstreamDSpace-CRIS: new features and contribution to the DSpace mainstream
DSpace-CRIS: new features and contribution to the DSpace mainstream
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)
 
FIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LD
 
DSpace Training Presentation
DSpace Training PresentationDSpace Training Presentation
DSpace Training Presentation
 
Introduction to Apache Sqoop
Introduction to Apache SqoopIntroduction to Apache Sqoop
Introduction to Apache Sqoop
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Elastic search Walkthrough
Elastic search WalkthroughElastic search Walkthrough
Elastic search Walkthrough
 
Infrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using TerraformInfrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using Terraform
 
Terasort
TerasortTerasort
Terasort
 
Introduction to DSpace
Introduction to DSpaceIntroduction to DSpace
Introduction to DSpace
 
Open stack
Open stackOpen stack
Open stack
 
Guía para implementar Koha
Guía para implementar KohaGuía para implementar Koha
Guía para implementar Koha
 
Terraform 101
Terraform 101Terraform 101
Terraform 101
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2
 

Similar to Workshop Docker for DSpace

Docker intro
Docker introDocker intro
Docker intro
Frei Zhang
 
Docker how to
Docker how toDocker how to
Docker how to
Patryk Omiotek
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
JasonStraughan1
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
Patrick Chanezon
 
Docker In Brief
Docker In BriefDocker In Brief
Docker In Brief
Ritu Kamthan
 
Dockerize WordPress on Mac/Windows
Dockerize WordPress on Mac/WindowsDockerize WordPress on Mac/Windows
Dockerize WordPress on Mac/Windows
Kite Koga
 
Docker 101
Docker 101 Docker 101
Docker 101
Kevin Nord
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
Carlo Bonamico
 
Academy PRO: Docker. Lecture 2
Academy PRO: Docker. Lecture 2Academy PRO: Docker. Lecture 2
Academy PRO: Docker. Lecture 2
Binary Studio
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker Container
Guido Schmutz
 
Docker @ Atlogys
Docker @ AtlogysDocker @ Atlogys
Docker @ FOSS4G 2016, Bonn
Docker @ FOSS4G 2016, BonnDocker @ FOSS4G 2016, Bonn
Docker @ FOSS4G 2016, Bonn
Daniel Nüst
 
Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021
Alessandro Mignogna
 
Docker
DockerDocker
Domino on docker version 2
Domino on docker version 2Domino on docker version 2
Domino on docker version 2
Slobodan Lohja
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
Naukri.com
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
Taswar Bhatti
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Partner S.A.
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
Jérôme Petazzoni
 

Similar to Workshop Docker for DSpace (20)

Docker intro
Docker introDocker intro
Docker intro
 
Docker how to
Docker how toDocker how to
Docker how to
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Docker In Brief
Docker In BriefDocker In Brief
Docker In Brief
 
Dockerize WordPress on Mac/Windows
Dockerize WordPress on Mac/WindowsDockerize WordPress on Mac/Windows
Dockerize WordPress on Mac/Windows
 
Docker 101
Docker 101 Docker 101
Docker 101
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Academy PRO: Docker. Lecture 2
Academy PRO: Docker. Lecture 2Academy PRO: Docker. Lecture 2
Academy PRO: Docker. Lecture 2
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker Container
 
Docker @ Atlogys
Docker @ AtlogysDocker @ Atlogys
Docker @ Atlogys
 
Docker @ FOSS4G 2016, Bonn
Docker @ FOSS4G 2016, BonnDocker @ FOSS4G 2016, Bonn
Docker @ FOSS4G 2016, Bonn
 
Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021
 
Docker
DockerDocker
Docker
 
Domino on docker version 2
Domino on docker version 2Domino on docker version 2
Domino on docker version 2
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
 

More from Pascal-Nicolas Becker

Integration der gemeinsamen Normdatei in DSpace auf Basis von lobid
Integration der gemeinsamen Normdatei in DSpace auf Basis von lobidIntegration der gemeinsamen Normdatei in DSpace auf Basis von lobid
Integration der gemeinsamen Normdatei in DSpace auf Basis von lobid
Pascal-Nicolas Becker
 
DSpace - Rolle, Aufgaben und Verhältnis der Open-Source-Community und ihrer S...
DSpace - Rolle, Aufgaben und Verhältnis der Open-Source-Community und ihrer S...DSpace - Rolle, Aufgaben und Verhältnis der Open-Source-Community und ihrer S...
DSpace - Rolle, Aufgaben und Verhältnis der Open-Source-Community und ihrer S...
Pascal-Nicolas Becker
 
Stewarding national user groups to strengthen international Open Source Softw...
Stewarding national user groups to strengthen international Open Source Softw...Stewarding national user groups to strengthen international Open Source Softw...
Stewarding national user groups to strengthen international Open Source Softw...
Pascal-Nicolas Becker
 
OR2019 - The revenge of the repository rodeo - DSpace
OR2019 - The revenge of the repository rodeo - DSpaceOR2019 - The revenge of the repository rodeo - DSpace
OR2019 - The revenge of the repository rodeo - DSpace
Pascal-Nicolas Becker
 
DepositOnce - Das Repositorium der TU Berlin für Forschungsdaten und Publikat...
DepositOnce - Das Repositorium der TU Berlin für Forschungsdaten und Publikat...DepositOnce - Das Repositorium der TU Berlin für Forschungsdaten und Publikat...
DepositOnce - Das Repositorium der TU Berlin für Forschungsdaten und Publikat...
Pascal-Nicolas Becker
 
The State of DSpace
The State of DSpaceThe State of DSpace
The State of DSpace
Pascal-Nicolas Becker
 
Forschungsdaten und DSpace
Forschungsdaten und DSpaceForschungsdaten und DSpace
Forschungsdaten und DSpace
Pascal-Nicolas Becker
 
Zustand und Entwicklung von DSpace
Zustand und Entwicklung von DSpaceZustand und Entwicklung von DSpace
Zustand und Entwicklung von DSpace
Pascal-Nicolas Becker
 
Illuminating DSpace's Linked Data Support
Illuminating DSpace's Linked Data SupportIlluminating DSpace's Linked Data Support
Illuminating DSpace's Linked Data Support
Pascal-Nicolas Becker
 
Infotreff: Persistent Identifier
Infotreff: Persistent IdentifierInfotreff: Persistent Identifier
Infotreff: Persistent Identifier
Pascal-Nicolas Becker
 
16. DINI-Jahrestagung: Linked Data und Repositorien
16. DINI-Jahrestagung: Linked Data und Repositorien16. DINI-Jahrestagung: Linked Data und Repositorien
16. DINI-Jahrestagung: Linked Data und Repositorien
Pascal-Nicolas Becker
 
Strategic Development - Future Plans for DSpace
Strategic Development - Future Plans for DSpaceStrategic Development - Future Plans for DSpace
Strategic Development - Future Plans for DSpace
Pascal-Nicolas Becker
 
Basic aspects of Open Access
Basic aspects of Open AccessBasic aspects of Open Access
Basic aspects of Open Access
Pascal-Nicolas Becker
 
DSpace und das Semantic Web
DSpace und das Semantic WebDSpace und das Semantic Web
DSpace und das Semantic Web
Pascal-Nicolas Becker
 
Repositorieninhalte als Linked Data bereitstellen
Repositorieninhalte als Linked Data bereitstellenRepositorieninhalte als Linked Data bereitstellen
Repositorieninhalte als Linked Data bereitstellen
Pascal-Nicolas Becker
 
SWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic WebSWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic Web
Pascal-Nicolas Becker
 
DSpace 5 und Linked (Open) Data
DSpace 5 und Linked (Open) DataDSpace 5 und Linked (Open) Data
DSpace 5 und Linked (Open) Data
Pascal-Nicolas Becker
 
Open Science Days 2014 - Becker - Repositories and Linked Data
Open Science Days 2014 - Becker - Repositories and Linked DataOpen Science Days 2014 - Becker - Repositories and Linked Data
Open Science Days 2014 - Becker - Repositories and Linked Data
Pascal-Nicolas Becker
 
DepositOnce - Das Repositorium für Forschungsergebnisse der TU Berlin
DepositOnce - Das Repositorium für Forschungsergebnisse der TU BerlinDepositOnce - Das Repositorium für Forschungsergebnisse der TU Berlin
DepositOnce - Das Repositorium für Forschungsergebnisse der TU Berlin
Pascal-Nicolas Becker
 

More from Pascal-Nicolas Becker (19)

Integration der gemeinsamen Normdatei in DSpace auf Basis von lobid
Integration der gemeinsamen Normdatei in DSpace auf Basis von lobidIntegration der gemeinsamen Normdatei in DSpace auf Basis von lobid
Integration der gemeinsamen Normdatei in DSpace auf Basis von lobid
 
DSpace - Rolle, Aufgaben und Verhältnis der Open-Source-Community und ihrer S...
DSpace - Rolle, Aufgaben und Verhältnis der Open-Source-Community und ihrer S...DSpace - Rolle, Aufgaben und Verhältnis der Open-Source-Community und ihrer S...
DSpace - Rolle, Aufgaben und Verhältnis der Open-Source-Community und ihrer S...
 
Stewarding national user groups to strengthen international Open Source Softw...
Stewarding national user groups to strengthen international Open Source Softw...Stewarding national user groups to strengthen international Open Source Softw...
Stewarding national user groups to strengthen international Open Source Softw...
 
OR2019 - The revenge of the repository rodeo - DSpace
OR2019 - The revenge of the repository rodeo - DSpaceOR2019 - The revenge of the repository rodeo - DSpace
OR2019 - The revenge of the repository rodeo - DSpace
 
DepositOnce - Das Repositorium der TU Berlin für Forschungsdaten und Publikat...
DepositOnce - Das Repositorium der TU Berlin für Forschungsdaten und Publikat...DepositOnce - Das Repositorium der TU Berlin für Forschungsdaten und Publikat...
DepositOnce - Das Repositorium der TU Berlin für Forschungsdaten und Publikat...
 
The State of DSpace
The State of DSpaceThe State of DSpace
The State of DSpace
 
Forschungsdaten und DSpace
Forschungsdaten und DSpaceForschungsdaten und DSpace
Forschungsdaten und DSpace
 
Zustand und Entwicklung von DSpace
Zustand und Entwicklung von DSpaceZustand und Entwicklung von DSpace
Zustand und Entwicklung von DSpace
 
Illuminating DSpace's Linked Data Support
Illuminating DSpace's Linked Data SupportIlluminating DSpace's Linked Data Support
Illuminating DSpace's Linked Data Support
 
Infotreff: Persistent Identifier
Infotreff: Persistent IdentifierInfotreff: Persistent Identifier
Infotreff: Persistent Identifier
 
16. DINI-Jahrestagung: Linked Data und Repositorien
16. DINI-Jahrestagung: Linked Data und Repositorien16. DINI-Jahrestagung: Linked Data und Repositorien
16. DINI-Jahrestagung: Linked Data und Repositorien
 
Strategic Development - Future Plans for DSpace
Strategic Development - Future Plans for DSpaceStrategic Development - Future Plans for DSpace
Strategic Development - Future Plans for DSpace
 
Basic aspects of Open Access
Basic aspects of Open AccessBasic aspects of Open Access
Basic aspects of Open Access
 
DSpace und das Semantic Web
DSpace und das Semantic WebDSpace und das Semantic Web
DSpace und das Semantic Web
 
Repositorieninhalte als Linked Data bereitstellen
Repositorieninhalte als Linked Data bereitstellenRepositorieninhalte als Linked Data bereitstellen
Repositorieninhalte als Linked Data bereitstellen
 
SWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic WebSWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic Web
 
DSpace 5 und Linked (Open) Data
DSpace 5 und Linked (Open) DataDSpace 5 und Linked (Open) Data
DSpace 5 und Linked (Open) Data
 
Open Science Days 2014 - Becker - Repositories and Linked Data
Open Science Days 2014 - Becker - Repositories and Linked DataOpen Science Days 2014 - Becker - Repositories and Linked Data
Open Science Days 2014 - Becker - Repositories and Linked Data
 
DepositOnce - Das Repositorium für Forschungsergebnisse der TU Berlin
DepositOnce - Das Repositorium für Forschungsergebnisse der TU BerlinDepositOnce - Das Repositorium für Forschungsergebnisse der TU Berlin
DepositOnce - Das Repositorium für Forschungsergebnisse der TU Berlin
 

Recently uploaded

Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17
Bhajan Mehta
 
Camunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptxCamunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptx
ZachWylie3
 
Retrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with RagasRetrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with Ragas
Zilliz
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
SubhamMandal40
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
Zilliz
 
Patch Tuesday de julio
Patch Tuesday de julioPatch Tuesday de julio
Patch Tuesday de julio
Ivanti
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
BrainSell Technologies
 
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Zilliz
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
Brian Pichman
 
It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
Zilliz
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
alexjohnson7307
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
shyamraj55
 
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and CitiesThe Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
Arpan Buwa
 
Improving Learning Content Efficiency with Reusable Learning Content
Improving Learning Content Efficiency with Reusable Learning ContentImproving Learning Content Efficiency with Reusable Learning Content
Improving Learning Content Efficiency with Reusable Learning Content
Enterprise Knowledge
 
LeadMagnet IQ Review: Unlock the Secret to Effortless Traffic and Leads.pdf
LeadMagnet IQ Review:  Unlock the Secret to Effortless Traffic and Leads.pdfLeadMagnet IQ Review:  Unlock the Secret to Effortless Traffic and Leads.pdf
LeadMagnet IQ Review: Unlock the Secret to Effortless Traffic and Leads.pdf
SelfMade bd
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
David Wilson
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
DianaGray10
 
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
FIDO Alliance
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
bhumivarma35300
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
bellared2
 

Recently uploaded (20)

Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17
 
Camunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptxCamunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptx
 
Retrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with RagasRetrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with Ragas
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
 
Patch Tuesday de julio
Patch Tuesday de julioPatch Tuesday de julio
Patch Tuesday de julio
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
 
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
 
It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
 
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and CitiesThe Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
 
Improving Learning Content Efficiency with Reusable Learning Content
Improving Learning Content Efficiency with Reusable Learning ContentImproving Learning Content Efficiency with Reusable Learning Content
Improving Learning Content Efficiency with Reusable Learning Content
 
LeadMagnet IQ Review: Unlock the Secret to Effortless Traffic and Leads.pdf
LeadMagnet IQ Review:  Unlock the Secret to Effortless Traffic and Leads.pdfLeadMagnet IQ Review:  Unlock the Secret to Effortless Traffic and Leads.pdf
LeadMagnet IQ Review: Unlock the Secret to Effortless Traffic and Leads.pdf
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
 
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
 

Workshop Docker for DSpace

  • 1. DOCKER FOR DSPACE – LOWERING THE BARRIER OF ENTRY FOR NEW CONTRIBUTORS OR 2019 Terry Brady, Georgetown University Library Pascal Becker, The Library Code Please complete the Pre-work (Docker Install), if you have not already done so. http://bit.ly/dspace-docker
  • 3. TERRY BRADY So ware Developer, Georgetown University Library DSpace Committer https://github.com/terrywbrady/info
  • 4. PASCAL BECKER CEO and founder of The Library Code GmbH DSpace Committer Member of DSpace's Leadership and Steering Groups https://www.the-library-code.de/
  • 6. BACKGROUND 2018 the DSpace for Docker was created Start any version of DSpace from your desktop (Windows 10, MacOS, Linux) Helps newcomers to get a test system running quickly Helps developers to easily spin up development environments
  • 7. WHO YOU ARE (WE THINK) People who want to ... get a sneak peak on DSpace 7 get started with Docker know if Docker can help them with their development environment learn how they can get started with DSpace become more involved in the DSpace project
  • 8. WORKSHOP OBJECTIVES Understand basics of Docker (Images, Containers, Volumes, ...) What Docker images have been published for DSpace How to install Docker How to launch DSpace 6 and DSpace 7 using Docker How to participate in DSpace testing using Docker Exchanging tips and ideas about DSpace and Docker
  • 10. IMAGINE YOU COULD... ...create a DSpace installation with one single command ...install and start a new instance of any version of DSpace in under 3 minutes ...wouldn't need to have to think about database versions, operating systems, ordering virtual hosts, and further more.
  • 11. DEMO: RUNNING DSPACE 7 It takes 2-3 minutes to start up docker-compose -p d7 -f docker-compose.yml -f d7.override.yml up -d
  • 15. WHAT IS POSSIBLE WITH DSPACE AND DOCKER? Try out a DSpace feature without impacting your existing instance Preview an enhancement or new version Give input on the implementation Verify a bug fix before it is released Onboard new developers and repository managers to the project and so much more...
  • 16. DSPACE DOCKER IMAGES DSpace 7x, DSpace 6x, DSpace 5x, DSpace 4x Install content from DSpace AIP files on creation DSpace Database DSpace Angular UI Published to See https://hub.docker.com/u/dspace DSpace Docker Tutorial Overview
  • 17. CAN I USE YOUR IMAGES IN PRODUCTION? Not yet! Current images focus on testing and development We want to gain more experience on our own Do you want to help to create images for production? Contact us on slack!
  • 18. INSTALL INSTRUCTIONS (RECAP) Most attendees will have completed this step already Install Docker Desktop Install a terminal for running docker (Windows only) Download DSpace Docker Compose files
  • 19. INSTALLATION INSTRUCTIONS Windows 10 Setup MacOS Setup Linux Desktop Setup
  • 20. EXERCISE 1: VERIFY INSTALLATION Exercise 1: Verify Installation
  • 21. DOCKER CONCEPTS Basic idea of Docker Docker Images Docker Containers Docker vs. virtualization Docker Volumes
  • 22. WHY DOCKER? Imagine you could pack an application's complete environment into one package easily.
  • 23. WHY DOCKER? One script to start up your service / application All necessary services are started at once (database, web server) Runs identically on any desktop or server that supports Docker Windows, MacOS or Linux! Replicable process Destroy and recreate your service easily
  • 24. DOCKER IMAGES  An image is an executable package that includes everything needed to run an application - the code, a runtime, libraries, environment variables, and configuration files. - Docker Documentation, Get started with Docker, Part 1 Orientation
  • 25. DOCKER IMAGES (CONTINUED) An Image is A snapshot of an application and its complete environment Can be shared and downloaded Can be published Online on Or in a private repository docker hub
  • 26. DOCKER CONTAINERS A running version of a docker image Like a small server running within your desktop Containing a complete environment Containing an application or service Started and stopped by Docker Runs independently of other applications
  • 27. A CONTAINER'S LIFETIME Images package a complete environment Start a new container from an image is very easy A Container is just like a running version of an image Delete containers when they stop Create a new container everytime a service starts
  • 28. DOCKER VOLUMES If you delete a container when it stops, how do you persist data? Volumes can be (re-)used when a container starts Volumes outlive the containers that uses them Like a really small disk drive or network drive Data you wish to save must be stored in a volume
  • 29. EXERCISE 2: DOCKER IMAGES AND CONTAINERS Exercise 2: Docker Images and Containers
  • 31. DOCKER COMPOSE An image defines a service and its environment Today's applications are composed out of multiple services We need information about how to run an application Is it composed out of multiple services? How do they depend on each other? Which ports are used? How to start and stop it all together?
  • 32. DOCKER-COMPOSE.YAML Docker Compose is a command to control environments of multiple containers that work together Docker Compose defines information within configuration files about how to run an application Docker Compose builds complex docker commands for you to start up multiple services in the right order
  • 33. POSSIBILITIES OF DOCKER-COMPOSE Docker Compose can describe complex setups Defines which services to run in which order Configures volumes, ports, network structure, limits, environment variables, ... Can apply limits regarding CPU and/or RAM usage docker-compose contains shortcuts to interact with the containers it started
  • 34. DOCKER COMPOSE AND DSPACE The DSpace project heavily uses docker compose We have several docker-compose files that can be used together Some parts of a docker compose file gets overridden by another docker-compose file That allows us to easily tweak the instance of DSpace you're running
  • 35. RUNNING DSPACE 6 WITH DOCKER- COMPOSE docker-compose -p d6 -f docker-compose.yml -f d6.override.yml up -d docker-compose -p d6 -f docker-compose.yml -f d6.override.yml down
  • 36. Docker Compose File version: "3.7" services: dspacedb: image: dspace/dspace-postgres-pgcrypto # Note that a separate image exists for DSpace 4x # image: dspace/dspace-postgres-4x container_name: dspacedb environment: - PGDATA=/pgdata volumes: - pgdata:/pgdata - "../../add-ons/dspace-docker-tools:/dspace-docker-tools" networks: - dspacenet tty: true stdin open: true
  • 37. OVERRIDING WITH DOCKER-COMPOSE command to start DSpace 5: DSpace's default image: d5.override.yaml: docker-compose -p d5 -f docker-compose.yml -f d5.override.yml pull dspace: image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-6_x-jdk8-te dspace: image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-5_x-jdk8-te
  • 38. EXERCISE 3A: UNDERSTANDING DOCKER COMPOSE Exercise 3A: Understanding Docker Compose
  • 39. EXERCISE 3B: RUNNING DSPACE 6 WITH DOCKER-COMPOSE Exercise 3B: Running DSpace 6 with Docker- Compose
  • 40. EXERCISE 4: RUNNING DSPACE 7 WITH DOCKER-COMPOSE Exercise 4: Running DSpace 7 with Docker-Compose
  • 41. ADVANCED TOPICS Our ideas Building code changes with Docker Composse Running DSpace 6 and DSpace 7 on different ports Your ideas Anything specific you would like us to cover?
  • 42. EXERCISE 5: ADVANCED TOPICS Exercise 5: Advanced Topics
  • 43. WE NEED YOUR HELP Try it yourself, give us feedback on the documentation Join the #dspace-docker Slack Channel Help us assemble assets to distribute in AIP files
  • 44. WHAT WE NEED Curating and Assembling Public domain / restriction free Real repository content (but not very large) Small PDFs Small image Realistic metadata AIP Resources
  • 45. DISCUSSION Could you imagine using this capability? What would be needed to make this compelling for the repository manager community?
  • 46. FEEDBACK/QUESTIONS? What ideas do you have? What questions do you have?
  • 47. REFERENCE LINKS Join the Slack Channel DSpace Docker Tutorial Overview Docker Documentation Docker Compose Documentation #dspace-docker
  • 48. THANK YOU Terry Brady, Georgetown University Library Pascal Becker, The Library Code http://bit.ly/dspace-docker