mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
145 lines
5.6 KiB
Markdown
145 lines
5.6 KiB
Markdown
# Docker Compose files
|
|
|
|
***
|
|
:warning: **THESE IMAGES ARE NOT PRODUCTION READY** The below Docker Compose images/resources were built for development/testing only. Therefore, they may not be fully secured or up-to-date, and should not be used in production.
|
|
|
|
If you wish to run DSpace on Docker in production, we recommend building your own Docker images. You are welcome to borrow ideas/concepts from the below images in doing so. But, the below images should not be used "as is" in any production scenario.
|
|
***
|
|
|
|
## Overview
|
|
The scripts in this directory can be used to start the DSpace User Interface (frontend) in Docker.
|
|
Optionally, the backend (REST API) might also be started in Docker.
|
|
|
|
For additional options/settings in starting the backend (REST API) in Docker, see the Docker Compose
|
|
documentation for the backend: https://github.com/DSpace/DSpace/blob/main/dspace/src/main/docker-compose/README.md
|
|
|
|
## Root directory
|
|
|
|
The root directory of this project contains all the Dockerfiles which may be referenced by
|
|
the Docker compose scripts in this 'docker' folder.
|
|
|
|
### Dockerfile
|
|
|
|
This Dockerfile is used to build a *development* DSpace 7 Angular UI image, published as 'dspace/dspace-angular'
|
|
|
|
```
|
|
docker build -t dspace/dspace-angular:dspace-7_x .
|
|
```
|
|
|
|
This image is built *automatically* after each commit is made to the `main` branch.
|
|
|
|
Admins to our DockerHub repo can manually publish with the following command.
|
|
```
|
|
docker push dspace/dspace-angular:dspace-7_x
|
|
```
|
|
|
|
### Dockerfile.dist
|
|
|
|
The `Dockerfile.dist` is used to generate a *production* build and runtime environment.
|
|
|
|
```bash
|
|
# build the latest image
|
|
docker build -f Dockerfile.dist -t dspace/dspace-angular:dspace-7_x-dist .
|
|
```
|
|
|
|
A default/demo version of this image is built *automatically*.
|
|
|
|
## 'docker' directory
|
|
- docker-compose.yml
|
|
- Starts DSpace Angular with Docker Compose from the current branch. This file assumes that a DSpace 7 REST instance will also be started in Docker.
|
|
- docker-compose-rest.yml
|
|
- Runs a published instance of the DSpace 7 REST API - persists data in Docker volumes
|
|
- docker-compose-ci.yml
|
|
- Runs a published instance of the DSpace 7 REST API for CI testing. The database is re-populated from a SQL dump on each startup.
|
|
- cli.yml
|
|
- Docker compose file that provides a DSpace CLI container to work with a running DSpace REST container.
|
|
- cli.assetstore.yml
|
|
- Docker compose file that will download and install data into a DSpace REST assetstore. This script points to a default dataset that will be utilized for CI testing.
|
|
|
|
|
|
## To refresh / pull DSpace images from Dockerhub
|
|
```
|
|
docker-compose -f docker/docker-compose.yml pull
|
|
```
|
|
|
|
## To build DSpace images using code in your branch
|
|
```
|
|
docker-compose -f docker/docker-compose.yml build
|
|
```
|
|
|
|
## To start DSpace (REST and Angular) from your branch
|
|
|
|
This command provides a quick way to start both the frontend & backend from this single codebase
|
|
```
|
|
docker-compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml up -d
|
|
```
|
|
|
|
Keep in mind, you may also start the backend by cloning the 'DSpace/DSpace' GitHub repository separately. See the next section.
|
|
|
|
|
|
## Run DSpace REST and DSpace Angular from local branches.
|
|
|
|
This section assumes that you have clones *both* the 'DSpace/DSpace' and 'DSpace/dspace-angular' GitHub
|
|
repositories. When both are available locally, you can spin up both in Docker and have them work together.
|
|
|
|
_The system will be started in 2 steps. Each step shares the same docker network._
|
|
|
|
From 'DSpace/DSpace' clone (build first as needed):
|
|
```
|
|
docker-compose -p d7 up -d
|
|
```
|
|
|
|
NOTE: More detailed instructions on starting the backend via Docker can be found in the [Docker Compose instructions for the Backend](https://github.com/DSpace/DSpace/blob/main/dspace/src/main/docker-compose/README.md).
|
|
|
|
From 'DSpace/dspace-angular' clone (build first as needed)
|
|
```
|
|
docker-compose -p d7 -f docker/docker-compose.yml up -d
|
|
```
|
|
|
|
At this point, you should be able to access the UI from http://localhost:4000,
|
|
and the backend at http://localhost:8080/server/
|
|
|
|
## Run DSpace Angular dist build with DSpace Demo site backend
|
|
|
|
This allows you to run the Angular UI in *production* mode, pointing it at the demo or sandbox backend
|
|
(https://demo.dspace.org/server/ or https://sandbox.dspace.org/server/).
|
|
|
|
```
|
|
docker-compose -f docker/docker-compose-dist.yml pull
|
|
docker-compose -f docker/docker-compose-dist.yml build
|
|
docker-compose -p d7 -f docker/docker-compose-dist.yml up -d
|
|
```
|
|
|
|
## Ingest test data from AIPDIR
|
|
|
|
Create an administrator
|
|
```
|
|
docker-compose -p d7 -f docker/cli.yml run --rm dspace-cli create-administrator -e test@test.edu -f admin -l user -p admin -c en
|
|
```
|
|
|
|
Load content from AIP files
|
|
```
|
|
docker-compose -p d7 -f docker/cli.yml -f ./docker/cli.ingest.yml run --rm dspace-cli
|
|
```
|
|
|
|
## Alternative Ingest - Use Entities dataset
|
|
_Delete your docker volumes or use a unique project (-p) name_
|
|
|
|
Start DSpace with Database Content from a database dump
|
|
```
|
|
docker-compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml -f docker/db.entities.yml up -d
|
|
```
|
|
|
|
Load assetstore content and trigger a re-index of the repository
|
|
```
|
|
docker-compose -p d7 -f docker/cli.yml -f docker/cli.assetstore.yml run --rm dspace-cli
|
|
```
|
|
|
|
## End to end testing of the REST API (runs in GitHub Actions CI).
|
|
_In this instance, only the REST api runs in Docker using the Entities dataset. GitHub Actions will perform CI testing of Angular using Node to drive the tests. See `.github/workflows/build.yml` for more details._
|
|
|
|
This command is only really useful for testing our Continuous Integration process.
|
|
```
|
|
docker-compose -p d7ci -f docker/docker-compose-ci.yml up -d
|
|
```
|