mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-15 14:03:17 +00:00
Merge pull request #8092 from tdonohue/docker_runtime_configs
Update docker-compose scripts to use environment variables (to align with runtime configs)
This commit is contained in:
27
Dockerfile
27
Dockerfile
@@ -11,20 +11,15 @@
|
|||||||
FROM dspace/dspace-dependencies:dspace-7_x as build
|
FROM dspace/dspace-dependencies:dspace-7_x as build
|
||||||
ARG TARGET_DIR=dspace-installer
|
ARG TARGET_DIR=dspace-installer
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
# The dspace-installer directory will be written to /install
|
||||||
# The dspace-install directory will be written to /install
|
|
||||||
RUN mkdir /install \
|
RUN mkdir /install \
|
||||||
&& chown -Rv dspace: /install \
|
&& chown -Rv dspace: /install \
|
||||||
&& chown -Rv dspace: /app
|
&& chown -Rv dspace: /app
|
||||||
|
|
||||||
USER dspace
|
USER dspace
|
||||||
|
# Copy the DSpace source code (from local machine) into the workdir (excluding .dockerignore contents)
|
||||||
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
|
|
||||||
ADD --chown=dspace . /app/
|
ADD --chown=dspace . /app/
|
||||||
COPY dspace/src/main/docker/local.cfg /app/local.cfg
|
|
||||||
|
|
||||||
# Build DSpace (note: this build doesn't include the optional, deprecated "dspace-rest" webapp)
|
# Build DSpace (note: this build doesn't include the optional, deprecated "dspace-rest" webapp)
|
||||||
# Copy the dspace-install directory to /install. Clean up the build to keep the docker image small
|
# Copy the dspace-installer directory to /install. Clean up the build to keep the docker image small
|
||||||
RUN mvn package && \
|
RUN mvn package && \
|
||||||
mv /app/dspace/target/${TARGET_DIR}/* /install && \
|
mv /app/dspace/target/${TARGET_DIR}/* /install && \
|
||||||
mvn clean
|
mvn clean
|
||||||
@@ -32,32 +27,36 @@ RUN mvn package && \
|
|||||||
# Step 2 - Run Ant Deploy
|
# Step 2 - Run Ant Deploy
|
||||||
FROM tomcat:9-jdk11 as ant_build
|
FROM tomcat:9-jdk11 as ant_build
|
||||||
ARG TARGET_DIR=dspace-installer
|
ARG TARGET_DIR=dspace-installer
|
||||||
|
# COPY the /install directory from 'build' container to /dspace-src in this container
|
||||||
COPY --from=build /install /dspace-src
|
COPY --from=build /install /dspace-src
|
||||||
WORKDIR /dspace-src
|
WORKDIR /dspace-src
|
||||||
|
|
||||||
# Create the initial install deployment using ANT
|
# Create the initial install deployment using ANT
|
||||||
ENV ANT_VERSION 1.10.12
|
ENV ANT_VERSION 1.10.12
|
||||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||||
ENV PATH $ANT_HOME/bin:$PATH
|
ENV PATH $ANT_HOME/bin:$PATH
|
||||||
|
# Download and install 'ant'
|
||||||
RUN mkdir $ANT_HOME && \
|
RUN mkdir $ANT_HOME && \
|
||||||
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
|
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
|
||||||
|
# Run necessary 'ant' deploy scripts
|
||||||
RUN ant init_installation update_configs update_code update_webapps
|
RUN ant init_installation update_configs update_code update_webapps
|
||||||
|
|
||||||
# Step 3 - Run tomcat
|
# Step 3 - Run tomcat
|
||||||
# Create a new tomcat image that does not retain the the build directory contents
|
# Create a new tomcat image that does not retain the the build directory contents
|
||||||
FROM tomcat:9-jdk11
|
FROM tomcat:9-jdk11
|
||||||
|
# NOTE: DSPACE_INSTALL must align with the "dspace.dir" default configuration.
|
||||||
ENV DSPACE_INSTALL=/dspace
|
ENV DSPACE_INSTALL=/dspace
|
||||||
|
# Copy the /dspace directory from 'ant_build' containger to /dspace in this container
|
||||||
COPY --from=ant_build /dspace $DSPACE_INSTALL
|
COPY --from=ant_build /dspace $DSPACE_INSTALL
|
||||||
|
# Expose Tomcat port and AJP port
|
||||||
EXPOSE 8080 8009
|
EXPOSE 8080 8009
|
||||||
|
# Give java extra memory (2GB)
|
||||||
ENV JAVA_OPTS=-Xmx2000m
|
ENV JAVA_OPTS=-Xmx2000m
|
||||||
|
|
||||||
# Run the "server" webapp off the /server path (e.g. http://localhost:8080/server/)
|
# Link the DSpace 'server' webapp into Tomcat's webapps directory.
|
||||||
|
# This ensures that when we start Tomcat, it runs from /server path (e.g. http://localhost:8080/server/)
|
||||||
RUN ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/server
|
RUN ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/server
|
||||||
# If you wish to run "server" webapp off the ROOT path, then comment out the above RUN, and uncomment the below RUN.
|
# If you wish to run "server" webapp off the ROOT path, then comment out the above RUN, and uncomment the below RUN.
|
||||||
# You also MUST update the URL in dspace/src/main/docker/local.cfg
|
# You also MUST update the 'dspace.server.url' configuration to match.
|
||||||
# Please note that server webapp should only run on one path at a time.
|
# Please note that server webapp should only run on one path at a time.
|
||||||
#RUN mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/ROOT.bk && \
|
#RUN mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/ROOT.bk && \
|
||||||
# ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/ROOT
|
# ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/ROOT
|
||||||
|
@@ -11,19 +11,14 @@
|
|||||||
FROM dspace/dspace-dependencies:dspace-7_x as build
|
FROM dspace/dspace-dependencies:dspace-7_x as build
|
||||||
ARG TARGET_DIR=dspace-installer
|
ARG TARGET_DIR=dspace-installer
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
# The dspace-installer directory will be written to /install
|
||||||
# The dspace-install directory will be written to /install
|
|
||||||
RUN mkdir /install \
|
RUN mkdir /install \
|
||||||
&& chown -Rv dspace: /install \
|
&& chown -Rv dspace: /install \
|
||||||
&& chown -Rv dspace: /app
|
&& chown -Rv dspace: /app
|
||||||
|
|
||||||
USER dspace
|
USER dspace
|
||||||
|
# Copy the DSpace source code (from local machine) into the workdir (excluding .dockerignore contents)
|
||||||
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
|
|
||||||
ADD --chown=dspace . /app/
|
ADD --chown=dspace . /app/
|
||||||
COPY dspace/src/main/docker/local.cfg /app/local.cfg
|
# Build DSpace. Copy the dspace-installer directory to /install. Clean up the build to keep the docker image small
|
||||||
|
|
||||||
# Build DSpace. Copy the dspace-install directory to /install. Clean up the build to keep the docker image small
|
|
||||||
RUN mvn package && \
|
RUN mvn package && \
|
||||||
mv /app/dspace/target/${TARGET_DIR}/* /install && \
|
mv /app/dspace/target/${TARGET_DIR}/* /install && \
|
||||||
mvn clean
|
mvn clean
|
||||||
@@ -31,23 +26,25 @@ RUN mvn package && \
|
|||||||
# Step 2 - Run Ant Deploy
|
# Step 2 - Run Ant Deploy
|
||||||
FROM openjdk:11 as ant_build
|
FROM openjdk:11 as ant_build
|
||||||
ARG TARGET_DIR=dspace-installer
|
ARG TARGET_DIR=dspace-installer
|
||||||
|
# COPY the /install directory from 'build' container to /dspace-src in this container
|
||||||
COPY --from=build /install /dspace-src
|
COPY --from=build /install /dspace-src
|
||||||
WORKDIR /dspace-src
|
WORKDIR /dspace-src
|
||||||
|
|
||||||
# Create the initial install deployment using ANT
|
# Create the initial install deployment using ANT
|
||||||
ENV ANT_VERSION 1.10.12
|
ENV ANT_VERSION 1.10.12
|
||||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||||
ENV PATH $ANT_HOME/bin:$PATH
|
ENV PATH $ANT_HOME/bin:$PATH
|
||||||
|
# Download and install 'ant'
|
||||||
RUN mkdir $ANT_HOME && \
|
RUN mkdir $ANT_HOME && \
|
||||||
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
|
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
|
||||||
|
# Run necessary 'ant' deploy scripts
|
||||||
RUN ant init_installation update_configs update_code
|
RUN ant init_installation update_configs update_code
|
||||||
|
|
||||||
# Step 3 - Run jdk
|
# Step 3 - Run jdk
|
||||||
# Create a new tomcat image that does not retain the the build directory contents
|
# Create a new tomcat image that does not retain the the build directory contents
|
||||||
FROM openjdk:11
|
FROM openjdk:11
|
||||||
|
# NOTE: DSPACE_INSTALL must align with the "dspace.dir" default configuration.
|
||||||
ENV DSPACE_INSTALL=/dspace
|
ENV DSPACE_INSTALL=/dspace
|
||||||
|
# Copy the /dspace directory from 'ant_build' containger to /dspace in this container
|
||||||
COPY --from=ant_build /dspace $DSPACE_INSTALL
|
COPY --from=ant_build /dspace $DSPACE_INSTALL
|
||||||
|
# Give java extra memory (1GB)
|
||||||
ENV JAVA_OPTS=-Xmx1000m
|
ENV JAVA_OPTS=-Xmx1000m
|
||||||
|
@@ -8,23 +8,20 @@
|
|||||||
FROM maven:3-jdk-11 as build
|
FROM maven:3-jdk-11 as build
|
||||||
ARG TARGET_DIR=dspace-installer
|
ARG TARGET_DIR=dspace-installer
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
# Create the 'dspace' user account & home directory
|
||||||
RUN useradd dspace \
|
RUN useradd dspace \
|
||||||
&& mkdir /home/dspace \
|
&& mkdir /home/dspace \
|
||||||
&& chown -Rv dspace: /home/dspace
|
&& chown -Rv dspace: /home/dspace
|
||||||
|
|
||||||
RUN chown -Rv dspace: /app
|
RUN chown -Rv dspace: /app
|
||||||
|
|
||||||
USER dspace
|
USER dspace
|
||||||
|
|
||||||
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
|
# Copy the DSpace source code (from local machine) into the workdir (excluding .dockerignore contents)
|
||||||
ADD --chown=dspace . /app/
|
ADD --chown=dspace . /app/
|
||||||
COPY dspace/src/main/docker/local.cfg /app/local.cfg
|
|
||||||
|
|
||||||
# Trigger the installation of all maven dependencies
|
# Trigger the installation of all maven dependencies
|
||||||
RUN mvn package
|
RUN mvn package
|
||||||
|
|
||||||
# Clear the contents of the /app directory (including all maven builds), so no artifacts remain.
|
# Clear the contents of the /app directory (including all maven builds), so no artifacts remain.
|
||||||
# This ensures when dspace:dspace is built, it will just the Maven local cache (.m2) for dependencies
|
# This ensures when dspace:dspace is built, it will use the Maven local cache (~/.m2) for dependencies
|
||||||
USER root
|
USER root
|
||||||
RUN rm -rf /app/*
|
RUN rm -rf /app/*
|
||||||
|
@@ -13,20 +13,15 @@
|
|||||||
FROM dspace/dspace-dependencies:dspace-7_x as build
|
FROM dspace/dspace-dependencies:dspace-7_x as build
|
||||||
ARG TARGET_DIR=dspace-installer
|
ARG TARGET_DIR=dspace-installer
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
# The dspace-installer directory will be written to /install
|
||||||
# The dspace-install directory will be written to /install
|
|
||||||
RUN mkdir /install \
|
RUN mkdir /install \
|
||||||
&& chown -Rv dspace: /install \
|
&& chown -Rv dspace: /install \
|
||||||
&& chown -Rv dspace: /app
|
&& chown -Rv dspace: /app
|
||||||
|
|
||||||
USER dspace
|
USER dspace
|
||||||
|
# Copy the DSpace source code (from local machine) into the workdir (excluding .dockerignore contents)
|
||||||
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
|
|
||||||
ADD --chown=dspace . /app/
|
ADD --chown=dspace . /app/
|
||||||
COPY dspace/src/main/docker/local.cfg /app/local.cfg
|
# Build DSpace (INCLUDING the optional, deprecated "dspace-rest" webapp)
|
||||||
|
# Copy the dspace-installer directory to /install. Clean up the build to keep the docker image small
|
||||||
# Build DSpace (including the optional, deprecated "dspace-rest" webapp)
|
|
||||||
# Copy the dspace-install directory to /install. Clean up the build to keep the docker image small
|
|
||||||
RUN mvn package -Pdspace-rest && \
|
RUN mvn package -Pdspace-rest && \
|
||||||
mv /app/dspace/target/${TARGET_DIR}/* /install && \
|
mv /app/dspace/target/${TARGET_DIR}/* /install && \
|
||||||
mvn clean
|
mvn clean
|
||||||
@@ -34,17 +29,17 @@ RUN mvn package -Pdspace-rest && \
|
|||||||
# Step 2 - Run Ant Deploy
|
# Step 2 - Run Ant Deploy
|
||||||
FROM tomcat:9-jdk11 as ant_build
|
FROM tomcat:9-jdk11 as ant_build
|
||||||
ARG TARGET_DIR=dspace-installer
|
ARG TARGET_DIR=dspace-installer
|
||||||
|
# COPY the /install directory from 'build' container to /dspace-src in this container
|
||||||
COPY --from=build /install /dspace-src
|
COPY --from=build /install /dspace-src
|
||||||
WORKDIR /dspace-src
|
WORKDIR /dspace-src
|
||||||
|
|
||||||
# Create the initial install deployment using ANT
|
# Create the initial install deployment using ANT
|
||||||
ENV ANT_VERSION 1.10.12
|
ENV ANT_VERSION 1.10.12
|
||||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||||
ENV PATH $ANT_HOME/bin:$PATH
|
ENV PATH $ANT_HOME/bin:$PATH
|
||||||
|
# Download and install 'ant'
|
||||||
RUN mkdir $ANT_HOME && \
|
RUN mkdir $ANT_HOME && \
|
||||||
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
|
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
|
||||||
|
# Run necessary 'ant' deploy scripts
|
||||||
RUN ant init_installation update_configs update_code update_webapps
|
RUN ant init_installation update_configs update_code update_webapps
|
||||||
|
|
||||||
# Step 3 - Run tomcat
|
# Step 3 - Run tomcat
|
||||||
@@ -52,26 +47,29 @@ RUN ant init_installation update_configs update_code update_webapps
|
|||||||
FROM tomcat:9-jdk11
|
FROM tomcat:9-jdk11
|
||||||
ENV DSPACE_INSTALL=/dspace
|
ENV DSPACE_INSTALL=/dspace
|
||||||
ENV TOMCAT_INSTALL=/usr/local/tomcat
|
ENV TOMCAT_INSTALL=/usr/local/tomcat
|
||||||
|
# Copy the /dspace directory from 'ant_build' containger to /dspace in this container
|
||||||
COPY --from=ant_build /dspace $DSPACE_INSTALL
|
COPY --from=ant_build /dspace $DSPACE_INSTALL
|
||||||
# Enable the AJP connector in Tomcat's server.xml
|
# Enable the AJP connector in Tomcat's server.xml
|
||||||
# NOTE: secretRequired="false" should only be used when AJP is NOT accessible from an external network. But, secretRequired="true" isn't supported by mod_proxy_ajp until Apache 2.5
|
# NOTE: secretRequired="false" should only be used when AJP is NOT accessible from an external network. But, secretRequired="true" isn't supported by mod_proxy_ajp until Apache 2.5
|
||||||
RUN sed -i '/Service name="Catalina".*/a \\n <Connector protocol="AJP/1.3" port="8009" address="0.0.0.0" redirectPort="8443" URIEncoding="UTF-8" secretRequired="false" />' $TOMCAT_INSTALL/conf/server.xml
|
RUN sed -i '/Service name="Catalina".*/a \\n <Connector protocol="AJP/1.3" port="8009" address="0.0.0.0" redirectPort="8443" URIEncoding="UTF-8" secretRequired="false" />' $TOMCAT_INSTALL/conf/server.xml
|
||||||
# Expose Tomcat port and AJP port
|
# Expose Tomcat port and AJP port
|
||||||
EXPOSE 8080 8009
|
EXPOSE 8080 8009
|
||||||
|
# Give java extra memory (2GB)
|
||||||
ENV JAVA_OPTS=-Xmx2000m
|
ENV JAVA_OPTS=-Xmx2000m
|
||||||
|
|
||||||
# Run the "server" webapp off the /server path (e.g. http://localhost:8080/server/)
|
# Link the DSpace 'server' webapp into Tomcat's webapps directory.
|
||||||
# and the v6.x (deprecated) REST API off the "/rest" path
|
# This ensures that when we start Tomcat, it runs from /server path (e.g. http://localhost:8080/server/)
|
||||||
|
# Also link the v6.x (deprecated) REST API off the "/rest" path
|
||||||
RUN ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/server && \
|
RUN ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/server && \
|
||||||
ln -s $DSPACE_INSTALL/webapps/rest /usr/local/tomcat/webapps/rest
|
ln -s $DSPACE_INSTALL/webapps/rest /usr/local/tomcat/webapps/rest
|
||||||
# If you wish to run "server" webapp off the ROOT path, then comment out the above RUN, and uncomment the below RUN.
|
# If you wish to run "server" webapp off the ROOT path, then comment out the above RUN, and uncomment the below RUN.
|
||||||
# You also MUST update the URL in dspace/src/main/docker/local.cfg
|
# You also MUST update the 'dspace.server.url' configuration to match.
|
||||||
# Please note that server webapp should only run on one path at a time.
|
# Please note that server webapp should only run on one path at a time.
|
||||||
#RUN mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/ROOT.bk && \
|
#RUN mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/ROOT.bk && \
|
||||||
# ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/ROOT && \
|
# ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/ROOT && \
|
||||||
# ln -s $DSPACE_INSTALL/webapps/rest /usr/local/tomcat/webapps/rest
|
# ln -s $DSPACE_INSTALL/webapps/rest /usr/local/tomcat/webapps/rest
|
||||||
|
|
||||||
# Overwrite the v6.x (deprecated) REST API's web.xml, so that we can run it on HTTP (defaults to requiring HTTPS)
|
# Overwrite the v6.x (deprecated) REST API's web.xml, so that we can run it on HTTP (defaults to requiring HTTPS)
|
||||||
|
# WARNING: THIS IS OBVIOUSLY INSECURE. NEVER DO THIS IN PRODUCTION.
|
||||||
COPY dspace/src/main/docker/test/rest_web.xml $DSPACE_INSTALL/webapps/rest/WEB-INF/web.xml
|
COPY dspace/src/main/docker/test/rest_web.xml $DSPACE_INSTALL/webapps/rest/WEB-INF/web.xml
|
||||||
RUN sed -i -e "s|\${dspace.dir}|$DSPACE_INSTALL|" $DSPACE_INSTALL/webapps/rest/WEB-INF/web.xml
|
RUN sed -i -e "s|\${dspace.dir}|$DSPACE_INSTALL|" $DSPACE_INSTALL/webapps/rest/WEB-INF/web.xml
|
||||||
|
@@ -7,10 +7,23 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.cli
|
dockerfile: Dockerfile.cli
|
||||||
#environment:
|
environment:
|
||||||
|
# Below syntax may look odd, but it is how to override dspace.cfg settings via env variables.
|
||||||
|
# See https://github.com/DSpace/DSpace/blob/main/dspace/config/config-definition.xml
|
||||||
|
# __P__ => "." (e.g. dspace__P__dir => dspace.dir)
|
||||||
|
# __D__ => "-" (e.g. google__D__metadata => google-metadata)
|
||||||
|
# dspace.dir: Must match with Dockerfile's DSPACE_INSTALL directory.
|
||||||
|
dspace__P__dir: /dspace
|
||||||
|
# db.url: Ensure we are using the 'dspacedb' image for our database
|
||||||
|
db__P__url: 'jdbc:postgresql://dspacedb:5432/dspace'
|
||||||
|
# solr.server: Ensure we are using the 'dspacesolr' image for Solr
|
||||||
|
solr__P__server: http://dspacesolr:8983/solr
|
||||||
volumes:
|
volumes:
|
||||||
- ./dspace/src/main/docker-compose/local.cfg:/dspace/config/local.cfg
|
# Keep DSpace assetstore directory between reboots
|
||||||
- assetstore:/dspace/assetstore
|
- assetstore:/dspace/assetstore
|
||||||
|
# Mount local [src]/dspace/config/ to container. This syncs your local configs with container
|
||||||
|
# NOTE: Environment variables specified above will OVERRIDE any configs in local.cfg or dspace.cfg
|
||||||
|
- ./dspace/config:/dspace/config
|
||||||
entrypoint: /dspace/bin/dspace
|
entrypoint: /dspace/bin/dspace
|
||||||
command: help
|
command: help
|
||||||
networks:
|
networks:
|
||||||
|
@@ -4,12 +4,30 @@ networks:
|
|||||||
ipam:
|
ipam:
|
||||||
config:
|
config:
|
||||||
# Define a custom subnet for our DSpace network, so that we can easily trust requests from host to container.
|
# Define a custom subnet for our DSpace network, so that we can easily trust requests from host to container.
|
||||||
# If you customize this value, be sure to customize the 'proxies.trusted.ipranges' in your local.cfg.
|
# If you customize this value, be sure to customize the 'proxies.trusted.ipranges' env variable below.
|
||||||
- subnet: 172.23.0.0/16
|
- subnet: 172.23.0.0/16
|
||||||
services:
|
services:
|
||||||
# DSpace (backend) webapp container
|
# DSpace (backend) webapp container
|
||||||
dspace:
|
dspace:
|
||||||
container_name: dspace
|
container_name: dspace
|
||||||
|
environment:
|
||||||
|
# Below syntax may look odd, but it is how to override dspace.cfg settings via env variables.
|
||||||
|
# See https://github.com/DSpace/DSpace/blob/main/dspace/config/config-definition.xml
|
||||||
|
# __P__ => "." (e.g. dspace__P__dir => dspace.dir)
|
||||||
|
# __D__ => "-" (e.g. google__D__metadata => google-metadata)
|
||||||
|
# dspace.dir: Must match with Dockerfile's DSPACE_INSTALL directory.
|
||||||
|
dspace__P__dir: /dspace
|
||||||
|
# Uncomment to set a non-default value for dspace.server.url or dspace.ui.url
|
||||||
|
# dspace__P__server__P__url: http://localhost:8080/server
|
||||||
|
# dspace__P__ui__P__url: http://localhost:4000
|
||||||
|
dspace__P__name: 'DSpace Started with Docker Compose'
|
||||||
|
# db.url: Ensure we are using the 'dspacedb' image for our database
|
||||||
|
db__P__url: 'jdbc:postgresql://dspacedb:5432/dspace'
|
||||||
|
# solr.server: Ensure we are using the 'dspacesolr' image for Solr
|
||||||
|
solr__P__server: http://dspacesolr:8983/solr
|
||||||
|
# proxies.trusted.ipranges: This setting is required for a REST API running in Docker to trust requests
|
||||||
|
# from the host machine. This IP range MUST correspond to the 'dspacenet' subnet defined above.
|
||||||
|
proxies__P__trusted__P__ipranges: '172.23.0'
|
||||||
image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-7_x-test}"
|
image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-7_x-test}"
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
@@ -26,8 +44,11 @@ services:
|
|||||||
stdin_open: true
|
stdin_open: true
|
||||||
tty: true
|
tty: true
|
||||||
volumes:
|
volumes:
|
||||||
|
# Keep DSpace assetstore directory between reboots
|
||||||
- assetstore:/dspace/assetstore
|
- assetstore:/dspace/assetstore
|
||||||
- ./dspace/src/main/docker-compose/local.cfg:/dspace/config/local.cfg
|
# Mount local [src]/dspace/config/ to container. This syncs your local configs with container
|
||||||
|
# NOTE: Environment variables specified above will OVERRIDE any configs in local.cfg or dspace.cfg
|
||||||
|
- ./dspace/config:/dspace/config
|
||||||
# Ensure that the database is ready BEFORE starting tomcat
|
# Ensure that the database is ready BEFORE starting tomcat
|
||||||
# 1. While a TCP connection to dspacedb port 5432 is not available, continue to sleep
|
# 1. While a TCP connection to dspacedb port 5432 is not available, continue to sleep
|
||||||
# 2. Then, run database migration to init database tables
|
# 2. Then, run database migration to init database tables
|
||||||
|
@@ -25,8 +25,6 @@
|
|||||||
- docker-compose-shibboleth.yml
|
- docker-compose-shibboleth.yml
|
||||||
- Docker compose file that will start a *test/demo* Shibboleth SP container (in Apache) that proxies requests to the DSpace container
|
- Docker compose file that will start a *test/demo* Shibboleth SP container (in Apache) that proxies requests to the DSpace container
|
||||||
- ONLY useful for testing/development. NOT production ready.
|
- ONLY useful for testing/development. NOT production ready.
|
||||||
- environment.dev.ts
|
|
||||||
- Default angular environment when testing DSpace-angular from this repo
|
|
||||||
|
|
||||||
## To refresh / pull DSpace images from Dockerhub
|
## To refresh / pull DSpace images from Dockerhub
|
||||||
```
|
```
|
||||||
@@ -181,7 +179,9 @@ docker-compose -p d7 -f docker-compose-cli.yml -f dspace/src/main/docker-compose
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Modify DSpace Configuration in Docker
|
## Modify DSpace Configuration in Docker
|
||||||
While your Docker containers are running, you may directly modify the `local.cfg` in this directory which will change the DSpace configuration for the running Docker container. (Keep in mind, this works because our `docker-compose.yml` mounts this `[src]/dspace/src/main/docker-compose/local.cfg` from the host into the running Docker instance.)
|
While your Docker containers are running, you may directly modify any configurations under
|
||||||
|
`[dspace-src]/dspace/config/`. Those config changes will be synced to the container.
|
||||||
|
(This works because our `docker-compose.yml` mounts the `[src]/dspace/config` directory from the host into the running Docker instance.)
|
||||||
|
|
||||||
Many DSpace configuration settings will reload automatically (after a few seconds). However, configurations which are cached by DSpace (or by Spring Boot) may require you to quickly reboot the Docker containers by running `docker-compose -p d7 down` followed by `docker-compose -p d7 up -d`.
|
Many DSpace configuration settings will reload automatically (after a few seconds). However, configurations which are cached by DSpace (or by Spring Boot) may require you to quickly reboot the Docker containers by running `docker-compose -p d7 down` followed by `docker-compose -p d7 up -d`.
|
||||||
|
|
||||||
|
@@ -15,13 +15,17 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- dspace
|
- dspace
|
||||||
environment:
|
environment:
|
||||||
DSPACE_HOST: dspace-angular
|
DSPACE_UI_SSL: false
|
||||||
DSPACE_NAMESPACE: /
|
DSPACE_UI_HOST: dspace-angular
|
||||||
DSPACE_PORT: '4000'
|
DSPACE_UI_PORT: '4000'
|
||||||
DSPACE_SSL: "false"
|
DSPACE_UI_NAMESPACE: /
|
||||||
image: dspace/dspace-angular:latest
|
DSPACE_REST_SSL: false
|
||||||
|
DSPACE_REST_HOST: localhost
|
||||||
|
DSPACE_REST_PORT: 8080
|
||||||
|
DSPACE_REST_NAMESPACE: /server
|
||||||
|
image: dspace/dspace-angular:dspace-7_x
|
||||||
networks:
|
networks:
|
||||||
dspacenet: {}
|
dspacenet:
|
||||||
ports:
|
ports:
|
||||||
- published: 4000
|
- published: 4000
|
||||||
target: 4000
|
target: 4000
|
||||||
@@ -29,5 +33,3 @@ services:
|
|||||||
target: 9876
|
target: 9876
|
||||||
stdin_open: true
|
stdin_open: true
|
||||||
tty: true
|
tty: true
|
||||||
volumes:
|
|
||||||
- ./dspace/src/main/docker-compose/environment.dev.ts:/app/src/environments/environment.dev.ts
|
|
||||||
|
@@ -1,18 +0,0 @@
|
|||||||
/**
|
|
||||||
* The contents of this file are subject to the license and copyright
|
|
||||||
* detailed in the LICENSE and NOTICE files at the root of the source
|
|
||||||
* tree and available online at
|
|
||||||
*
|
|
||||||
* http://www.dspace.org/license/
|
|
||||||
*/
|
|
||||||
// This file is based on environment.template.ts provided by Angular UI
|
|
||||||
export const environment = {
|
|
||||||
// Default to using the local REST API (running in Docker)
|
|
||||||
rest: {
|
|
||||||
ssl: false,
|
|
||||||
host: 'localhost',
|
|
||||||
port: 8080,
|
|
||||||
// NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript
|
|
||||||
nameSpace: '/server'
|
|
||||||
}
|
|
||||||
};
|
|
@@ -1,11 +0,0 @@
|
|||||||
dspace.dir=/dspace
|
|
||||||
dspace.server.url=http://localhost:8080/server
|
|
||||||
dspace.ui.url=http://localhost:4000
|
|
||||||
dspace.name=DSpace Started with Docker Compose
|
|
||||||
# Ensure we are using the 'dspacedb' image for our database
|
|
||||||
db.url=jdbc:postgresql://dspacedb:5432/dspace
|
|
||||||
# Ensure we are using the 'dspacesolr' image for Solr
|
|
||||||
solr.server=http://dspacesolr:8983/solr
|
|
||||||
# NOTE: This setting is required for a REST API running in Docker to trust requests from the host machine.
|
|
||||||
# This IP range MUST correspond to the 'dspacenet' subnet defined in our 'docker-compose.yml'.
|
|
||||||
proxies.trusted.ipranges = 172.23.0
|
|
@@ -129,9 +129,9 @@ docker run -i -t -d -p 80:80 -p 443:443 dspace/dspace-shibboleth
|
|||||||
This image can also be rebuilt using the `../docker-compose/docker-compose-shibboleth.yml` script.
|
This image can also be rebuilt using the `../docker-compose/docker-compose-shibboleth.yml` script.
|
||||||
|
|
||||||
|
|
||||||
## local.cfg and test/ folder
|
## test/ folder
|
||||||
|
|
||||||
These resources are bundled into the `dspace/dspace` image at build time.
|
These resources are bundled into the `dspace/dspace:dspace-*-test` image at build time.
|
||||||
|
|
||||||
|
|
||||||
## Debugging Docker builds
|
## Debugging Docker builds
|
||||||
|
@@ -1,9 +0,0 @@
|
|||||||
# ------------------------------------------------------------------------
|
|
||||||
# This file contains the localized properties for published DSpace images.
|
|
||||||
# See https://github.com/DSpace-Labs/DSpace-Docker-Images for usage information.
|
|
||||||
# ------------------------------------------------------------------------
|
|
||||||
dspace.dir = /dspace
|
|
||||||
db.url = jdbc:postgresql://dspacedb:5432/dspace
|
|
||||||
dspace.server.url=http://localhost:8080/server
|
|
||||||
dspace.ui.url=http://localhost:4000
|
|
||||||
solr.server=http://dspacesolr:8983/solr
|
|
Reference in New Issue
Block a user