Coder Social home page Coder Social logo

aspace-custom's Introduction

aspace-custom

UMD customizations to the stock ArchvesSpace (https://archivesspace.org/) application, and provides Dockerfiles for creating the Docker images used by the umd-lib/k8s-aspace Kubernetes configuration.

This repository is intended to replace:

Development Setup

See docs/DevelopmentSetup.md.

ArchivesSpace Upgrade/Docker Image Creation

When upgrading to ArchivesSpace v3.3.1 upgrade, there was a peculiar gem version conflict between the stock ArchivesSpace and the "aspace-oauth" gem used for CAS authentication (see LIBASPACE-333 for more information). The conflict manifested itself by the ArchivesSpace server throwing the following error on startup:

WARNING: ERROR: initialization failed
org.jruby.rack.RackInitializationException: Could not find public_suffix-4.0.6 in any of the sources

The workaround was to edit docker_config/archivesspace/scripts/plugins.sh script) so that the "public_suffix" and "addressable" gems versions are compatible with the stock ArchivesSpace.

As it is likely that the gem versions will slowly change over time, this script should be reviewed whenever a new ArchivesSpace upgrade performed, or new production Docker images are created.

This issue was also discussed on the ArchivesSpace mailing list, see http://lyralists.lyrasis.org/pipermail/archivesspace_users_group/2022-December/009705.html and responses.

Dockerfiles

  • Dockerfile - The Dockerfile for creating the UMD-customized ArchivesSpace Docker image
  • Dockerfile-solr - The Dockerfile for creating the Solr instance to use with ArchivesSpace
  • Dockerfile-api-proxy - The Dockerfile for creating an Nginx reverse proxy for protecting the ArchivesSpace API from anonymous access.

Docker Image Creation for Release

The following steps use the Kubernetes "build" namespace to build the Docker images. This enables the steps to used with both newer Apple Silicon laptops and older Intel-based Apple laptops.

For information about setting up the Kubernetes "build" namespace, see the "Docker Builds in Kuberetes" document in Confluence:

https://confluence.umd.edu/display/LIB/Docker+Builds+in+Kubernetes

  1. Switch to the Kubernetes "build" namespace:
$ kubectl config use-context build
  1. Build the Docker images, where <TAG> is the Docker image tag to use:
$ docker buildx build --platform linux/amd64 --builder=kube --push --no-cache -t docker.lib.umd.edu/aspace:<TAG> -f Dockerfile .
$ docker buildx build --platform linux/amd64 --builder=kube --push --no-cache -t docker.lib.umd.edu/aspace-api-proxy:<TAG> -f Dockerfile-api-proxy .
$ docker buildx build --platform linux/amd64 --builder=kube --push --no-cache -t docker.lib.umd.edu/aspace-solr:<TAG> -f Dockerfile-solr .

For example, to build all the images using "latest" as the image tag:

$ docker buildx build --platform linux/amd64 --builder=kube --push --no-cache -t docker.lib.umd.edu/aspace:latest -f Dockerfile .
$ docker buildx build --platform linux/amd64 --builder=kube --push --no-cache -t docker.lib.umd.edu/aspace-api-proxy:latest -f Dockerfile-api-proxy .
$ docker buildx build --platform linux/amd64 --builder=kube --push --no-cache -t docker.lib.umd.edu/aspace-solr:latest -f Dockerfile-solr .

The images will be automatically pushed to the Nexus.

Directories

docker_config/archivesspace/

Files/directories used to configure the ArchivesSpace Docker image.

docker_config/archivesspace/archivesspace

The files in this directory are directly copied (overlaid) on top of a stock ArchivesSpace distribution.

docker_config/archivesspace/files/

The files in this directory are plugin-related files that are copied in to an ArchivesSpace distribution by the "scripts/plugins.sh" script.

The files cannot be placed in the "archivesspace" directory, because the required plugin directories don't exist until the "plugins.sh" script creates them,

docker_config/archivesspace/config/

Holds the "plugins" files specifying the ArchivesSpace plugins used by the UMD version of ArchivesSpace.

docker_config/archivesspace/scripts/

Holds the "plugins.sh" script for downloading and installing the ArchivesSpace plugins specified in the "archivesspace/config/config.rb" file.

docker_config/solr/

Files/directories used to configure the ArchivesSpace Solr Docker image.

docker_config/api-proxy/

Contains the Nginx configuration file for reverse proxy that protects the ArchivesSpace API endpoints from anonymous access.

aspace-custom's People

Contributors

dsteelma-umd avatar ecaringo avatar mohideen avatar

Watchers

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

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.