diff --git a/.dockerignore b/.dockerignore index 4c49bd7..56a6585 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1 +1,6 @@ .env +.git +.github +.gitignore +db +init diff --git a/.env.example b/.env.example index 8a3e042..d83b018 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,2 @@ APPCONFIG_DB_URL=jdbc:mysql://db:3306/archivesspace?useUnicode=true&characterEncoding=UTF-8&user=archivesspace&password=archivesspace +ARCHIVESSPACE_VERSION="v4.1.1" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..a84bd71 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,190 @@ +name: Build / Test / Push + +on: + push: + branches: + - '**' + workflow_dispatch: + +env: + BUILD_SUFFIX: -build-${{ github.run_id }}_${{ github.run_attempt }} + DOCKER_METADATA_SET_OUTPUT_ENV: 'true' + +jobs: + build: + runs-on: ${{ matrix.runner }} + outputs: + image-arm64: ${{ steps.gen-output.outputs.image-arm64 }} + image-x64: ${{ steps.gen-output.outputs.image-x64 }} + strategy: + fail-fast: false + matrix: + runner: + - ubuntu-24.04 + - ubuntu-24.04-arm + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - id: build-meta + name: Docker meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + tags: type=sha,suffix=${{ env.BUILD_SUFFIX }} + + # Build cache is shared among all builds of the same architecture + - id: cache-meta + name: Docker meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + tags: type=raw,value=buildcache-${{ runner.arch }} + + - id: get-registry + name: Get the sanitized registry name + run: | + echo "registry=$(echo '${{ steps.build-meta.outputs.tags }}' | cut -f1 -d:)" | tee -a "$GITHUB_OUTPUT" + + - id: build + name: Build/push the arch-specific image + uses: docker/build-push-action@v6 + with: + cache-from: type=registry,ref=${{ steps.cache-meta.outputs.tags }} + cache-to: type=registry,ref=${{ steps.cache-meta.outputs.tags }},mode=max + labels: ${{ steps.build-meta.outputs.labels }} + provenance: mode=max + sbom: true + tags: ${{ steps.get-registry.outputs.registry }} + outputs: type=image,push-by-digest=true,push=true + + - id: gen-output + name: Write arch-specific image digest to outputs + run: | + echo "image-${RUNNER_ARCH,,}=${{ steps.get-registry.outputs.registry }}@${{ steps.build.outputs.digest }}" | tee -a "$GITHUB_OUTPUT" + + merge: + runs-on: ubuntu-24.04 + needs: build + env: + DOCKER_APP_IMAGE_ARM64: ${{ needs.build.outputs.image-arm64 }} + DOCKER_APP_IMAGE_X64: ${{ needs.build.outputs.image-x64 }} + outputs: + image: ${{ steps.meta.outputs.tags }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - id: meta + name: Generate tag for the app image + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + tags: type=sha,suffix=${{ env.BUILD_SUFFIX }} + + - name: Push the multi-platform app image + run: | + docker buildx imagetools create \ + --tag "$DOCKER_METADATA_OUTPUT_TAGS" \ + "$DOCKER_APP_IMAGE_ARM64" "$DOCKER_APP_IMAGE_X64" + + test: + runs-on: ubuntu-24.04 + needs: merge + env: + COMPOSE_FILE: compose.yml:compose.ci.yml + DOCKER_APP_IMAGE: ${{ needs.merge.outputs.image }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Compose + uses: docker/setup-compose-action@v1 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Setup the stack + run: | + cp .env.example .env + docker compose config + docker compose build + docker compose pull + docker compose up --wait + docker compose exec -u root app chown archivesspace:archivesspace artifacts + + - name: Query the ASpace home page + run: | + curl --location --fail --retry 30 --retry-all-errors http://localhost:8080/ + + - name: Copy out artifacts + if: ${{ always() }} + run: | + docker compose cp app:/opt/app/artifacts ./ || mkdir artifacts + docker compose logs > artifacts/compose-services.log + docker compose config > artifacts/compose.merged.yml + + - name: Upload the build report + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + name: ASpace Build Report (${{ github.run_id }}_${{ github.run_attempt }}) + path: artifacts/* + if-no-files-found: error + + push: + runs-on: ubuntu-24.04 + needs: + - build + - test + env: + DOCKER_APP_IMAGE_ARM64: ${{ needs.build.outputs.image-arm64 }} + DOCKER_APP_IMAGE_X64: ${{ needs.build.outputs.image-x64 }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Produce permanent image tags + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + tags: | + type=sha + type=ref,event=branch + type=raw,value=latest,enable={{is_default_branch}} + + - name: Retag and push the image + run: | + docker buildx imagetools create \ + $(jq -cr '.tags | map("--tag " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") $DOCKER_APP_IMAGE_ARM64 $DOCKER_APP_IMAGE_X64 diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index 90f0bb4..0000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: Build -on: [ push, workflow_dispatch ] -env: - REGISTRY: ghcr.io - -jobs: - # TODO: DRY w/release.yml - setup: - runs-on: ubuntu-latest - - steps: - # See https://github.com/docker/build-push-action/blob/v2.10.0/TROUBLESHOOTING.md#repository-name-must-be-lowercase - - name: Sanitize image name - uses: actions/github-script@v6 - id: image-name - with: - result-encoding: string - script: return '${{ env.REGISTRY }}/${{ github.repository }}'.toLowerCase() - - - name: Get short SHA - run: | - echo SHORT_SHA="${GITHUB_SHA:0:7}" >> $GITHUB_ENV - outputs: - base_image_name: ${{ steps.image-name.outputs.result }} - build_image: ${{ steps.image-name.outputs.result }}:${{ env.SHORT_SHA }} - - build: - if: github.event_name != 'release' - needs: setup - env: - BUILD_IMAGE: ${{ needs.setup.outputs.build_image }} - - runs-on: ubuntu-latest - - permissions: - packages: write - contents: read - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Get build start time - run: | - echo BUILD_TIMESTAMP="$(date --utc --iso-8601=seconds)" >> $GITHUB_ENV - - name: Build and push Docker image - uses: docker/build-push-action@v3 - with: - context: . - push: true - tags: ${{ env.BUILD_IMAGE }} - build-args: | - BUILD_TIMESTAMP=${{ env.BUILD_TIMESTAMP }} - BUILD_URL=https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} - DOCKER_TAG=${{ env.BUILD_IMAGE }} - GIT_BRANCH=${{ github.ref_name }} - GIT_COMMIT=${{ github.sha }} - GIT_URL=${{ github.repositoryUrl }} - outputs: - build_image: ${{ env.BUILD_IMAGE }} - - # TODO: DRY w/release.yml - push: - if: github.event_name != 'release' - - needs: [ setup, build ] - env: - BASE_IMAGE_NAME: ${{ needs.setup.outputs.base_image_name }} - BUILD_IMAGE: ${{ needs.build.outputs.build_image }} - - runs-on: ubuntu-latest - - permissions: - packages: write - - steps: - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v3 - with: - images: ${{ env.BASE_IMAGE_NAME }} - - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Tag and push image - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: ${{ env.BUILD_IMAGE }} - dst: | - ${{ steps.meta.outputs.tags }} - - diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..4704e60 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,60 @@ +name: Push Release Tags + +on: + push: + tags: + - '**' + workflow_dispatch: + +env: + DOCKER_METADATA_SET_OUTPUT_ENV: 'true' + +jobs: + retag: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Determine the sha-based image tag to retag + id: get-base-image + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + tags: type=sha + + - name: Verify that the image was previously built + env: + BASE_IMAGE: ${{ steps.get-base-image.outputs.tags }} + run: | + docker manifest inspect "$BASE_IMAGE" + + - name: Produce release tags + id: tag-meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + flavor: latest=false + tags: | + type=ref,event=tag + type=semver,pattern={{major}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{version}} + + - name: Retag the pulled image + env: + BASE_IMAGE: ${{ steps.get-base-image.outputs.tags }} + run: | + docker buildx imagetools create \ + $(jq -cr '.tags | map("--tag " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ + "$(echo "$BASE_IMAGE" | cut -f1 -d:)" diff --git a/.gitignore b/.gitignore index 4c49bd7..23e89a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ .env +db/dumps/* +!db/dumps/.keep +data +init diff --git a/Dockerfile b/Dockerfile index b5f6aa7..af42396 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,14 @@ # ============================================================ # Adding comment to trigger a build # BASE Stage -FROM ubuntu:20.04 AS base +FROM ubuntu:noble AS base -ARG ARCHIVESSPACE_VERSION="v3.3.1" +ARG ARCHIVESSPACE_VERSION="v4.1.1" ARG ARCHIVESSPACE_USER_UID="40052" ARG ARCHIVESSPACE_USER_GID="40052" -ARG DWO_PLUGIN_VERSION="v1.13" +ARG DWO_PLUGIN_VERSION="v2.1" ARG MT_PLUGIN_VERSION="v1.5" -ARG MYSQL_CONNECTOR_VERSION="8.0.23" +ARG MYSQL_CONNECTOR_VERSION="9.5.0" ENV ARCHIVESSPACE_LOGS="/dev/null" ENV ARCHIVESSPACE_PLUGIN_DWO_URL="https://github.com/hudmol/digitization_work_order/archive/refs/tags/${DWO_PLUGIN_VERSION}.zip" @@ -16,7 +16,7 @@ ENV ARCHIVESSPACE_PLUGIN_MT_URL="https://github.com/hudmol/material_types/archiv ENV ARCHIVESSPACE_SOURCE_URL="https://github.com/archivesspace/archivesspace/releases/download/${ARCHIVESSPACE_VERSION}/archivesspace-${ARCHIVESSPACE_VERSION}.zip" ENV DEBIAN_FRONTEND="noninteractive" ENV LANG="C.UTF-8" -ENV MYSQL_CONNECTOR_JAR_URL="https://repo1.maven.org/maven2/mysql/mysql-connector-java/${MYSQL_CONNECTOR_VERSION}/mysql-connector-java-${MYSQL_CONNECTOR_VERSION}.jar" +ENV MYSQL_CONNECTOR_JAR_URL="https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/${MYSQL_CONNECTOR_VERSION}/mysql-connector-j-${MYSQL_CONNECTOR_VERSION}.jar" ENV TZ="UTC" RUN apt-get update && \ @@ -24,7 +24,7 @@ RUN apt-get update && \ ca-certificates \ git \ netbase \ - openjdk-11-jre-headless \ + openjdk-17-jre-headless \ shared-mime-info \ vim \ wget \ @@ -70,26 +70,24 @@ RUN wget -O material_types.zip "$ARCHIVESSPACE_PLUGIN_MT_URL" && \ FROM base AS final # Copy the built ArchivesSpace -COPY --from=aspace --chown=root:archivesspace /opt/app /opt/app +COPY --from=aspace --chown=archivesspace:archivesspace /opt/app /opt/app # Copy in our custom config files -COPY --chown=root:archivesspace files/config/config.rb /opt/app/config/config.rb -COPY --chown=root:archivesspace files/plugins/local/frontend/assets/images/* /opt/app/plugins/local/frontend/assets/images/ -COPY --chown=root:archivesspace files/plugins/local/frontend/locales/en.rb /opt/app/plugins/local/frontend/locales/en.rb +COPY --chown=archivesspace:archivesspace files/plugins/local/frontend/assets/images/* /opt/app/plugins/local/frontend/assets/images/ +COPY --chown=archivesspace:archivesspace files/plugins/local/frontend/locales/en.rb /opt/app/plugins/local/frontend/locales/en.rb # Copy the built DWO plugin -COPY --from=digitization_work_order --chown=root:archivesspace \ +COPY --from=digitization_work_order --chown=archivesspace:archivesspace \ /opt/app/plugins/digitization_work_order \ /opt/app/plugins/digitization_work_order # Copy the built Materials Type plugin -COPY --from=material_types --chown=root:archivesspace \ +COPY --from=material_types --chown=archivesspace:archivesspace \ /opt/app/plugins/material_types \ /opt/app/plugins/material_types # Install the entrypoint script. -COPY --chown=root:archivesspace docker-entrypoint.sh /bin/docker-entrypoint.sh -RUN chmod ug+x /bin/docker-entrypoint.sh +COPY --chown=archivesspace:archivesspace files/docker-entrypoint.sh /bin/docker-entrypoint.sh ENTRYPOINT ["/bin/docker-entrypoint.sh"] USER archivesspace diff --git a/README.md b/README.md index c11ce75..f734e40 100644 --- a/README.md +++ b/README.md @@ -6,20 +6,27 @@ This repo Dockerizes ArchivesSpace. In a nutshell: # Populate your local .env file with secrets (e.g. OCLC keys) cp .env.example .env -# Build the stack +# Build the stack / pull dependencies docker compose build +docker compose pull # Run it all -docker compose up -d +docker compose up --wait + +# Open ASpace in your browser +open http://localhost:8080 ``` +For ArchivesSpace v4+, consult their excellent [new documentation site](https://docs.archivesspace.org/). + ### Database Initialization -The database is initialized by an "updater" service which simply runs `scripts/setup-database.sh` and exits. Docker should retry it continuously until it succeeds. +* The database is initialized by an "updater" service which simply runs `scripts/setup-database.sh` and exits. Docker should retry it continuously until it succeeds. +* To test migrations with real data, add a dump to the `db/dumps/` directory. The updater still runs against this, making it helpful for testing whether your data will survive a migration. ### Secrets -We've added an entrypoint.sh shim script which loads files from `/run/secrets` into the environment before running a given command. Secrets can be added there using Docker's normal methods, but read from the application using `ENV`. +We've added a `docker-entrypoint.sh` shim script which loads files from `/run/secrets` into the environment before running a given command. Secrets can be added there using Docker's normal methods, but read from the application using `ENV`. ### Configuration File diff --git a/compose.ci.yml b/compose.ci.yml new file mode 100644 index 0000000..ca9345c --- /dev/null +++ b/compose.ci.yml @@ -0,0 +1,13 @@ +services: + app: &services_app + build: !reset + image: ${DOCKER_APP_IMAGE} + volumes: !override + - artifacts:/opt/app/artifacts + + updater: + build: !reset + image: ${DOCKER_APP_IMAGE} + +volumes: + artifacts: {} diff --git a/docker-compose.yml b/compose.yml similarity index 67% rename from docker-compose.yml rename to compose.yml index 9f2ae6b..91050ca 100644 --- a/docker-compose.yml +++ b/compose.yml @@ -1,18 +1,20 @@ -version: "3.8" - services: app: &services_app - build: . - user: root + build: + context: . + args: &aspace-build-args + - ARCHIVESSPACE_VERSION=${ARCHIVESSPACE_VERSION:-v4.1.1} + # ASpace bundles a lot of services, for a full reference: + # @see https://docs.archivesspace.org/customization/configuration/#urls-for-archivesspace-components ports: - - 8080:8080 - - 8081:8081 - - 8082:8082 - - 8089:8089 - - 8090:8090 + - 8080:8080 # staff + - 8081:8081 # public (disabled by APPCONFIG_ENABLE_PUBLIC) + - 8082:8082 # OAI harvesting + - 8888:8888 # documentation + - 8089:8089 # backend + - 8090:8090 # built-in solr (unused) + - 8091:8091 # indexer configs: - - source: config.rb - target: /opt/app/config/config.rb - source: en-locales.yml target: /opt/app/locales/enums/en.yml depends_on: @@ -21,29 +23,29 @@ services: solr: condition: service_healthy updater: - condition: service_completed_successfully - secrets: - # @note Customize these in your local .env file if necessary - - APPCONFIG_DB_URL + condition: service_completed_successfully environment: # @note ArchivesSpace settings can be specified by setting ENV vars of the form # APPCONFIG_. We have run into problems with any # that require parsing JSON, however, so avoid that. - #APPCONFIG_FRONTEND_BRANDING_IMG: "assets/images/banner_logo.png" + #APPCONFIG_FRONTEND_BRANDING_IMG: "assets/images/banner_logo.png" - APPCONFIG_FRONTEND_BRANDING_IMG=assets/images/aspace_lit_development.png - APPCONFIG_FRONTEND_BRANDING_IMG_ALT_TEXT=ArchivesSpace Local Development Logo - APPCONFIG_PLUGINS_OVERRIDE=local,lcnaf,digitization_work_order,material_types - APPCONFIG_ENABLE_PUBLIC=false + - APPCONFIG_PUI_INDEXER_ENABLED=false - APPCONFIG_SOLR_URL=http://solr:8983/solr/archivesspace - APPCONFIG_SOLR_VERIFY_CHECKSUMS=false - ASPACE_LOGGED_IN_MSG=You are logged in to a local development instance of ArchivesSpace - ASPACE_WELCOME_HEADING=ArchivesSpace Development (local) - ASPACE_WELCOME_MESSAGE=You are on a local development instance of ArchivesSpace - JAVA_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xss512k -Djavax.accessibility.assistive_technologies='' + # @note Use `secrets:` instead of `environment:` to test that the entrypoint loads them into ENV + secrets: + - APPCONFIG_DB_URL volumes: - aspace_data:/opt/app/data - - solr_data:/var/solr/data:ro - + updater: <<: *services_app depends_on: @@ -52,31 +54,31 @@ services: command: scripts/setup-database.sh ports: [] restart: on-failure - + solr: - image: solr:8.11.2 + build: + context: solr + args: *aspace-build-args + command: solr-precreate archivesspace environment: + # @see https://docs.archivesspace.org/provisioning/solr/#setup-the-environment + - SOLR_MODULES=analysis-extras # Eliminates "failed to reserve shared memory" warning # @see https://support.pingidentity.com/s/article/Addressing-Failed-to-reserve-shared-memory-errors - GC_TUNE: -XX:-UseLargePages + - GC_TUNE=-XX:-UseLargePages ports: - 8983:8983 - command: solr-precreate archivesspace /opt/solr/server/solr/configsets/archivesspace volumes: - - ./solr:/opt/solr-8.11.2/server/solr/configsets/archivesspace/conf:ro - - solr_data:/var/solr/data + - solr_data:/var/solr healthcheck: test: curl --max-time 10 -f http://localhost:8983/solr/#/~cores/archivesspace || exit 1 start_period: 10s interval: 10s timeout: 10s retries: 5 - + db: image: mariadb:10.9 - depends_on: - solr: - condition: service_healthy environment: # @note These are all hardcoded for convenience - MYSQL_ROOT_PASSWORD=archivesspace-root @@ -85,19 +87,22 @@ services: - MYSQL_PASSWORD=archivesspace ports: - 3306:3306 + secrets: + - source: root-my.cnf + target: /root/.my.cnf volumes: + - ./db/dumps:/docker-entrypoint-initdb.d:ro - db_data:/var/lib/mysql - - ./init:/docker-entrypoint-initdb.d configs: - config.rb: - file: files/config/config.rb en-locales.yml: file: files/locales/enums/en.yml secrets: APPCONFIG_DB_URL: environment: APPCONFIG_DB_URL + root-my.cnf: + file: files/root-my.cnf volumes: aspace_data: {} diff --git a/solr/stopwords.txt b/db/dumps/.keep similarity index 100% rename from solr/stopwords.txt rename to db/dumps/.keep diff --git a/docker-entrypoint.sh b/files/docker-entrypoint.sh similarity index 100% rename from docker-entrypoint.sh rename to files/docker-entrypoint.sh diff --git a/files/root-my.cnf b/files/root-my.cnf new file mode 100644 index 0000000..e801146 --- /dev/null +++ b/files/root-my.cnf @@ -0,0 +1,3 @@ +[client] +user = root +password = archivesspace-root diff --git a/solr/Dockerfile b/solr/Dockerfile new file mode 100644 index 0000000..eff597d --- /dev/null +++ b/solr/Dockerfile @@ -0,0 +1,21 @@ +FROM solr:9 + +ARG ARCHIVESSPACE_VERSION="v4.1.1" +ENV ARCHIVESSPACE_SOURCE_URL="https://github.com/archivesspace/archivesspace/releases/download/${ARCHIVESSPACE_VERSION}/archivesspace-${ARCHIVESSPACE_VERSION}.zip" + +# Upgrade system packages and install wget +USER root +RUN apt-get -y update && \ + apt-get -y upgrade && \ + apt-get -y install --no-install-recommends \ + unzip \ + wget && \ + rm -rf /var/lib/apt/lists/* + +# Create a configset for the given ASpace release +RUN mkdir -p /opt/solr/server/solr/configsets/archivesspace/conf && \ + wget -O aspace.zip "$ARCHIVESSPACE_SOURCE_URL" && \ + unzip aspace.zip 'archivesspace/solr/*' && \ + mv archivesspace/solr/* /opt/solr/server/solr/configsets/archivesspace/conf/ && \ + rm -rf aspace.zip archivesspace +USER solr diff --git a/solr/schema.new b/solr/schema.new deleted file mode 100644 index 16cb8ae..0000000 --- a/solr/schema.new +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - id - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/solr/schema.xml b/solr/schema.xml deleted file mode 100644 index 9ae91f6..0000000 --- a/solr/schema.xml +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - id - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/solr/solrconfig.xml b/solr/solrconfig.xml deleted file mode 100644 index 920fbdf..0000000 --- a/solr/solrconfig.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - 8.10 - ${solr.data.dir:} - - - 1000 - - 1000 - 60000 - false - - - - 1024 - - - - true - 20 - 200 - false - 2 - - - - - - - - edismax - explicit - 10 - fullrecord - four_part_id^50 - title^25 four_part_id^50 fullrecord - primary_type:resource^100 - primary_type:accession^100 - primary_type:subject^50 - primary_type:agent_person^50 - primary_type:agent_corporate_entity^30 - primary_type:agent_family^30 - - - - - - - - text/plain; charset=UTF-8 - - - *:* - - - diff --git a/solr/synonyms.txt b/solr/synonyms.txt deleted file mode 100644 index e69de29..0000000