mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 10:04:21 +00:00
Merge pull request #10115 from tdonohue/port_10800_to_7x
[Port dspace-7_x] [Docker] Use fully qualified image names & allow for other registries to be used
This commit is contained in:
17
Dockerfile
17
Dockerfile
@@ -6,9 +6,14 @@
|
||||
# This Dockerfile uses JDK11 by default, but has also been tested with JDK17.
|
||||
# To build with JDK17, use "--build-arg JDK_VERSION=17"
|
||||
ARG JDK_VERSION=11
|
||||
# The Docker version tag to build from
|
||||
ARG DSPACE_VERSION=dspace-7_x
|
||||
# The Docker registry to use for DSpace images. Defaults to "docker.io"
|
||||
# NOTE: non-DSpace images are hardcoded to use "docker.io" and are not impacted by this build argument
|
||||
ARG DOCKER_REGISTRY=docker.io
|
||||
|
||||
# Step 1 - Run Maven Build
|
||||
FROM dspace/dspace-dependencies:dspace-7_x AS build
|
||||
FROM ${DOCKER_REGISTRY}/dspace/dspace-dependencies:${DSPACE_VERSION} AS build
|
||||
ARG TARGET_DIR=dspace-installer
|
||||
WORKDIR /app
|
||||
# The dspace-installer directory will be written to /install
|
||||
@@ -28,15 +33,15 @@ RUN mvn --no-transfer-progress package ${MAVEN_FLAGS} && \
|
||||
mvn clean
|
||||
|
||||
# Step 2 - Run Ant Deploy
|
||||
FROM eclipse-temurin:${JDK_VERSION} AS ant_build
|
||||
FROM docker.io/eclipse-temurin:${JDK_VERSION} AS ant_build
|
||||
ARG TARGET_DIR=dspace-installer
|
||||
# COPY the /install directory from 'build' container to /dspace-src in this container
|
||||
COPY --from=build /install /dspace-src
|
||||
WORKDIR /dspace-src
|
||||
# Create the initial install deployment using ANT
|
||||
ENV ANT_VERSION 1.10.13
|
||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||
ENV PATH $ANT_HOME/bin:$PATH
|
||||
ENV ANT_VERSION=1.10.13
|
||||
ENV ANT_HOME=/tmp/ant-$ANT_VERSION
|
||||
ENV PATH=$ANT_HOME/bin:$PATH
|
||||
# Need wget to install ant
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends wget \
|
||||
@@ -50,7 +55,7 @@ RUN ant init_installation update_configs update_code update_webapps
|
||||
|
||||
# Step 3 - Run tomcat
|
||||
# Create a new tomcat image that does not retain the the build directory contents
|
||||
FROM tomcat:9-jdk${JDK_VERSION}
|
||||
FROM docker.io/tomcat:9-jdk${JDK_VERSION}
|
||||
# NOTE: DSPACE_INSTALL must align with the "dspace.dir" default configuration.
|
||||
ENV DSPACE_INSTALL=/dspace
|
||||
# Copy the /dspace directory from 'ant_build' container to /dspace in this container
|
||||
|
@@ -6,9 +6,14 @@
|
||||
# This Dockerfile uses JDK11 by default, but has also been tested with JDK17.
|
||||
# To build with JDK17, use "--build-arg JDK_VERSION=17"
|
||||
ARG JDK_VERSION=11
|
||||
# The Docker version tag to build from
|
||||
ARG DSPACE_VERSION=dspace-7_x
|
||||
# The Docker registry to use for DSpace images. Defaults to "docker.io"
|
||||
# NOTE: non-DSpace images are hardcoded to use "docker.io" and are not impacted by this build argument
|
||||
ARG DOCKER_REGISTRY=docker.io
|
||||
|
||||
# Step 1 - Run Maven Build
|
||||
FROM dspace/dspace-dependencies:dspace-7_x AS build
|
||||
FROM ${DOCKER_REGISTRY}/dspace/dspace-dependencies:${DSPACE_VERSION} AS build
|
||||
ARG TARGET_DIR=dspace-installer
|
||||
WORKDIR /app
|
||||
# The dspace-installer directory will be written to /install
|
||||
@@ -24,15 +29,15 @@ RUN mvn --no-transfer-progress package && \
|
||||
mvn clean
|
||||
|
||||
# Step 2 - Run Ant Deploy
|
||||
FROM eclipse-temurin:${JDK_VERSION} AS ant_build
|
||||
FROM docker.io/eclipse-temurin:${JDK_VERSION} AS ant_build
|
||||
ARG TARGET_DIR=dspace-installer
|
||||
# COPY the /install directory from 'build' container to /dspace-src in this container
|
||||
COPY --from=build /install /dspace-src
|
||||
WORKDIR /dspace-src
|
||||
# Create the initial install deployment using ANT
|
||||
ENV ANT_VERSION 1.10.13
|
||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||
ENV PATH $ANT_HOME/bin:$PATH
|
||||
ENV ANT_VERSION=1.10.13
|
||||
ENV ANT_HOME=/tmp/ant-$ANT_VERSION
|
||||
ENV PATH=$ANT_HOME/bin:$PATH
|
||||
# Need wget to install ant
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends wget \
|
||||
@@ -45,7 +50,7 @@ RUN mkdir $ANT_HOME && \
|
||||
RUN ant init_installation update_configs update_code
|
||||
|
||||
# Step 3 - Run jdk
|
||||
FROM eclipse-temurin:${JDK_VERSION}
|
||||
FROM docker.io/eclipse-temurin:${JDK_VERSION}
|
||||
# NOTE: DSPACE_INSTALL must align with the "dspace.dir" default configuration.
|
||||
ENV DSPACE_INSTALL=/dspace
|
||||
# Copy the /dspace directory from 'ant_build' container to /dspace in this container
|
||||
|
@@ -7,7 +7,7 @@
|
||||
ARG JDK_VERSION=11
|
||||
|
||||
# Step 1 - Run Maven Build
|
||||
FROM maven:3-eclipse-temurin-${JDK_VERSION} AS build
|
||||
FROM docker.io/maven:3-eclipse-temurin-${JDK_VERSION} AS build
|
||||
ARG TARGET_DIR=dspace-installer
|
||||
WORKDIR /app
|
||||
# Create the 'dspace' user account & home directory
|
||||
|
@@ -8,9 +8,14 @@
|
||||
# This Dockerfile uses JDK11 by default, but has also been tested with JDK17.
|
||||
# To build with JDK17, use "--build-arg JDK_VERSION=17"
|
||||
ARG JDK_VERSION=11
|
||||
# The Docker version tag to build from
|
||||
ARG DSPACE_VERSION=dspace-7_x
|
||||
# The Docker registry to use for DSpace images. Defaults to "docker.io"
|
||||
# NOTE: non-DSpace images are hardcoded to use "docker.io" and are not impacted by this build argument
|
||||
ARG DOCKER_REGISTRY=docker.io
|
||||
|
||||
# Step 1 - Run Maven Build
|
||||
FROM dspace/dspace-dependencies:dspace-7_x AS build
|
||||
FROM ${DOCKER_REGISTRY}/dspace/dspace-dependencies:${DSPACE_VERSION} AS build
|
||||
ARG TARGET_DIR=dspace-installer
|
||||
WORKDIR /app
|
||||
# The dspace-installer directory will be written to /install
|
||||
@@ -27,15 +32,15 @@ RUN mvn --no-transfer-progress package -Pdspace-rest && \
|
||||
mvn clean
|
||||
|
||||
# Step 2 - Run Ant Deploy
|
||||
FROM eclipse-temurin:${JDK_VERSION} AS ant_build
|
||||
FROM docker.io/eclipse-temurin:${JDK_VERSION} AS ant_build
|
||||
ARG TARGET_DIR=dspace-installer
|
||||
# COPY the /install directory from 'build' container to /dspace-src in this container
|
||||
COPY --from=build /install /dspace-src
|
||||
WORKDIR /dspace-src
|
||||
# Create the initial install deployment using ANT
|
||||
ENV ANT_VERSION 1.10.12
|
||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||
ENV PATH $ANT_HOME/bin:$PATH
|
||||
ENV ANT_VERSION=1.10.12
|
||||
ENV ANT_HOME=/tmp/ant-$ANT_VERSION
|
||||
ENV PATH=$ANT_HOME/bin:$PATH
|
||||
# Need wget to install ant
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends wget \
|
||||
@@ -49,7 +54,7 @@ RUN ant init_installation update_configs update_code update_webapps
|
||||
|
||||
# Step 3 - Run tomcat
|
||||
# Create a new tomcat image that does not retain the the build directory contents
|
||||
FROM tomcat:9-jdk${JDK_VERSION}
|
||||
FROM docker.io/tomcat:9-jdk${JDK_VERSION}
|
||||
ENV DSPACE_INSTALL=/dspace
|
||||
ENV TOMCAT_INSTALL=/usr/local/tomcat
|
||||
# Copy the /dspace directory from 'ant_build' containger to /dspace in this container
|
||||
|
@@ -6,7 +6,7 @@ networks:
|
||||
external: true
|
||||
services:
|
||||
dspace-cli:
|
||||
image: "${DOCKER_OWNER:-dspace}/dspace-cli:${DSPACE_VER:-dspace-7_x}"
|
||||
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-cli:${DSPACE_VER:-dspace-7_x}"
|
||||
container_name: dspace-cli
|
||||
build:
|
||||
context: .
|
||||
|
@@ -28,7 +28,7 @@ services:
|
||||
# from the host machine. This IP range MUST correspond to the 'dspacenet' subnet defined above.
|
||||
proxies__P__trusted__P__ipranges: '172.23.0'
|
||||
LOGGING_CONFIG: /dspace/config/log4j2-container.xml
|
||||
image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-7_x-test}"
|
||||
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-7_x-test}"
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.test
|
||||
@@ -66,7 +66,7 @@ services:
|
||||
dspacedb:
|
||||
container_name: dspacedb
|
||||
# Uses a custom Postgres image with pgcrypto installed
|
||||
image: "${DOCKER_OWNER:-dspace}/dspace-postgres-pgcrypto:${DSPACE_VER:-dspace-7_x}"
|
||||
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-postgres-pgcrypto:${DSPACE_VER:-dspace-7_x}"
|
||||
build:
|
||||
# Must build out of subdirectory to have access to install script for pgcrypto
|
||||
context: ./dspace/src/main/docker/dspace-postgres-pgcrypto/
|
||||
@@ -86,7 +86,7 @@ services:
|
||||
# DSpace Solr container
|
||||
dspacesolr:
|
||||
container_name: dspacesolr
|
||||
image: "${DOCKER_OWNER:-dspace}/dspace-solr:${DSPACE_VER:-dspace-7_x}"
|
||||
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-solr:${DSPACE_VER:-dspace-7_x}"
|
||||
build:
|
||||
context: ./dspace/src/main/docker/dspace-solr/
|
||||
# Provide path to Solr configs necessary to build Docker image
|
||||
|
@@ -13,11 +13,11 @@
|
||||
ARG POSTGRES_VERSION=15
|
||||
ARG POSTGRES_PASSWORD=dspace
|
||||
|
||||
FROM postgres:${POSTGRES_VERSION}
|
||||
FROM docker.io/postgres:${POSTGRES_VERSION}
|
||||
|
||||
ENV POSTGRES_DB dspace
|
||||
ENV POSTGRES_USER dspace
|
||||
ENV POSTGRES_PASSWORD ${POSTGRES_PASSWORD}
|
||||
ENV POSTGRES_DB=dspace
|
||||
ENV POSTGRES_USER=dspace
|
||||
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
|
||||
# Install curl which is necessary to load SQL file
|
||||
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
|
||||
|
@@ -13,11 +13,11 @@
|
||||
ARG POSTGRES_VERSION=15
|
||||
ARG POSTGRES_PASSWORD=dspace
|
||||
|
||||
FROM postgres:${POSTGRES_VERSION}
|
||||
FROM docker.io/postgres:${POSTGRES_VERSION}
|
||||
|
||||
ENV POSTGRES_DB dspace
|
||||
ENV POSTGRES_USER dspace
|
||||
ENV POSTGRES_PASSWORD ${POSTGRES_PASSWORD}
|
||||
ENV POSTGRES_DB=dspace
|
||||
ENV POSTGRES_USER=dspace
|
||||
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
|
||||
# Copy over script which will initialize database and install pgcrypto extension
|
||||
COPY install-pgcrypto.sh /docker-entrypoint-initdb.d/
|
||||
|
@@ -10,15 +10,15 @@
|
||||
# Build from Ubuntu as it has easy Apache tooling (e.g. a2enmod script is debian only).
|
||||
# Apache & mod_shib are required for DSpace to act as an SP
|
||||
# See also https://wiki.lyrasis.org/display/DSDOC7x/Authentication+Plugins#AuthenticationPlugins-ShibbolethAuthentication
|
||||
FROM ubuntu:20.04
|
||||
FROM docker.io/ubuntu:20.04
|
||||
|
||||
# Apache ENVs (default values)
|
||||
ENV APACHE_RUN_USER www-data
|
||||
ENV APACHE_RUN_GROUP www-data
|
||||
ENV APACHE_LOCK_DIR /var/lock/apache2
|
||||
ENV APACHE_LOG_DIR /var/log/apache2
|
||||
ENV APACHE_PID_FILE /var/run/apache2/apache2.pid
|
||||
ENV APACHE_SERVER_NAME localhost
|
||||
ENV APACHE_RUN_USER=www-data
|
||||
ENV APACHE_RUN_GROUP=www-data
|
||||
ENV APACHE_LOCK_DIR=/var/lock/apache2
|
||||
ENV APACHE_LOG_DIR=/var/log/apache2
|
||||
ENV APACHE_PID_FILE=/var/run/apache2/apache2.pid
|
||||
ENV APACHE_SERVER_NAME=localhost
|
||||
|
||||
# Ensure Apache2, mod_shib & shibboleth daemon are installed.
|
||||
# Also install ssl-cert to provide a local SSL cert for use with Apache
|
||||
|
@@ -12,7 +12,7 @@
|
||||
|
||||
ARG SOLR_VERSION=8.11
|
||||
|
||||
FROM solr:${SOLR_VERSION}-slim
|
||||
FROM docker.io/solr:${SOLR_VERSION}-slim
|
||||
|
||||
ENV AUTHORITY_CONFIGSET_PATH=/opt/solr/server/solr/configsets/authority/conf \
|
||||
OAI_CONFIGSET_PATH=/opt/solr/server/solr/configsets/oai/conf \
|
||||
|
Reference in New Issue
Block a user