mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 07:23:08 +00:00
Merge pull request #2219 from terrywbrady/ds4012_4x
[DS-4012] Port DS-4012 to 4x
This commit is contained in:
@@ -1,6 +1,13 @@
|
||||
# This image will be published as dspace/dspace
|
||||
# See https://dspace-labs.github.io/DSpace-Docker-Images/ for usage details
|
||||
|
||||
# This version is JDK7 compatible
|
||||
# - tomcat:7-jre7
|
||||
# - ANT 1.9.13
|
||||
# - maven:latest
|
||||
# - note: solr localhost restriction removed for testing
|
||||
# - default tag for branch: dspace/dspace: dspace/dspace:dspace-4_x-jdk7-test
|
||||
|
||||
# Step 1 - Run Maven Build
|
||||
FROM maven as build
|
||||
WORKDIR /app
|
||||
@@ -12,13 +19,13 @@ COPY dspace/src/main/docker/build.properties /app/build.properties
|
||||
RUN mvn package
|
||||
|
||||
# Step 2 - Run Ant Deploy
|
||||
FROM tomcat:8 as ant_build
|
||||
FROM tomcat:7-jre7 as ant_build
|
||||
ARG TARGET_DIR=dspace-build
|
||||
COPY --from=build /app /dspace-src
|
||||
WORKDIR /dspace-src/dspace/target/${TARGET_DIR}
|
||||
|
||||
# Create the initial install deployment using ANT
|
||||
ENV ANT_VERSION 1.10.5
|
||||
ENV ANT_VERSION 1.9.13
|
||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||
ENV PATH $ANT_HOME/bin:$PATH
|
||||
|
||||
@@ -29,12 +36,12 @@ RUN ant 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:8
|
||||
FROM tomcat:7-jre7
|
||||
COPY --from=ant_build /dspace /dspace
|
||||
EXPOSE 8080 8009
|
||||
|
||||
# Ant will be embedded in the final container to allow additional deployments
|
||||
ENV ANT_VERSION 1.10.5
|
||||
ENV ANT_VERSION 1.9.13
|
||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||
ENV PATH $ANT_HOME/bin:$PATH
|
||||
|
64
Dockerfile.jdk7-test
Normal file
64
Dockerfile.jdk7-test
Normal file
@@ -0,0 +1,64 @@
|
||||
# This image will be published as dspace/dspace
|
||||
# See https://dspace-labs.github.io/DSpace-Docker-Images/ for usage details
|
||||
|
||||
# This version is JDK7 compatible
|
||||
# - tomcat:7-jre7
|
||||
# - ANT 1.9.13
|
||||
# - maven:latest
|
||||
# - note:
|
||||
# - default tag for branch: dspace/dspace: dspace/dspace:dspace-4_x-jdk7
|
||||
|
||||
# Step 1 - Run Maven Build
|
||||
FROM maven as build
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
|
||||
ADD . /app/
|
||||
COPY dspace/src/main/docker/build.properties /app/build.properties
|
||||
|
||||
# Provide web.xml overrides to make webapps easier to test
|
||||
COPY dspace/src/main/docker/test/solr_web.xml /app/dspace-solr/src/main/webapp/WEB-INF/web.xml
|
||||
|
||||
RUN mvn package
|
||||
|
||||
# Step 2 - Run Ant Deploy
|
||||
FROM tomcat:7-jre7 as ant_build
|
||||
ARG TARGET_DIR=dspace-build
|
||||
COPY --from=build /app /dspace-src
|
||||
WORKDIR /dspace-src/dspace/target/${TARGET_DIR}
|
||||
|
||||
# Create the initial install deployment using ANT
|
||||
ENV ANT_VERSION 1.9.13
|
||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||
ENV PATH $ANT_HOME/bin:$PATH
|
||||
|
||||
RUN mkdir $ANT_HOME && \
|
||||
wget -qO- "https://www.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
|
||||
|
||||
RUN ant 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:7-jre7
|
||||
COPY --from=ant_build /dspace /dspace
|
||||
EXPOSE 8080 8009
|
||||
|
||||
# Ant will be embedded in the final container to allow additional deployments
|
||||
ENV ANT_VERSION 1.9.13
|
||||
ENV ANT_HOME /tmp/ant-$ANT_VERSION
|
||||
ENV PATH $ANT_HOME/bin:$PATH
|
||||
|
||||
RUN mkdir $ANT_HOME && \
|
||||
wget -qO- "https://www.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
|
||||
|
||||
ENV DSPACE_INSTALL=/dspace
|
||||
ENV JAVA_OPTS=-Xmx2000m
|
||||
|
||||
RUN ln -s $DSPACE_INSTALL/webapps/solr /usr/local/tomcat/webapps/solr && \
|
||||
ln -s $DSPACE_INSTALL/webapps/xmlui /usr/local/tomcat/webapps/xmlui && \
|
||||
ln -s $DSPACE_INSTALL/webapps/jspui /usr/local/tomcat/webapps/jspui && \
|
||||
ln -s $DSPACE_INSTALL/webapps/rest /usr/local/tomcat/webapps/rest && \
|
||||
ln -s $DSPACE_INSTALL/webapps/oai /usr/local/tomcat/webapps/oai && \
|
||||
ln -s $DSPACE_INSTALL/webapps/rdf /usr/local/tomcat/webapps/rdf && \
|
||||
ln -s $DSPACE_INSTALL/webapps/sword /usr/local/tomcat/webapps/sword && \
|
||||
ln -s $DSPACE_INSTALL/webapps/swordv2 /usr/local/tomcat/webapps/swordv2
|
207
dspace/src/main/docker/test/solr_web.xml
Normal file
207
dspace/src/main/docker/test/solr_web.xml
Normal file
@@ -0,0 +1,207 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
|
||||
<!--
|
||||
|
||||
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 EXISTS TO SIMPLIFY TESTING IN DOCKER.
|
||||
This file overrides the solr localhost restriction.
|
||||
-->
|
||||
<web-app>
|
||||
|
||||
<!-- Uncomment if you are trying to use a Resin version before 3.0.19.
|
||||
Their XML implementation isn't entirely compatible with Xerces.
|
||||
Below are the implementations to use with Sun's JVM.
|
||||
<system-property javax.xml.xpath.XPathFactory=
|
||||
"com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl"/>
|
||||
<system-property javax.xml.parsers.DocumentBuilderFactory=
|
||||
"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"/>
|
||||
<system-property javax.xml.parsers.SAXParserFactory=
|
||||
"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"/>
|
||||
-->
|
||||
|
||||
<!-- People who want to hardcode their "Solr Home" directly into the
|
||||
WAR File can set the JNDI property here...
|
||||
-->
|
||||
<!--
|
||||
<env-entry>
|
||||
<env-entry-name>solr/home</env-entry-name>
|
||||
<env-entry-value>/put/your/solr/home/here</env-entry-value>
|
||||
<env-entry-type>java.lang.String</env-entry-type>
|
||||
</env-entry>
|
||||
-->
|
||||
|
||||
<context-param>
|
||||
<param-name>log4j.configuration</param-name>
|
||||
<param-value>${dspace.dir}/config/log4j-solr.properties</param-value>
|
||||
<description>URL locating a Log4J configuration file (properties or XML).</description>
|
||||
</context-param>
|
||||
|
||||
<!-- Any path (name) registered in solrconfig.xml will be sent to that filter -->
|
||||
<filter>
|
||||
<filter-name>LocalHostRestrictionFilter</filter-name>
|
||||
<filter-class>org.dspace.solr.filters.LocalHostRestrictionFilter</filter-class>
|
||||
</filter>
|
||||
|
||||
<!-- Any path (name) registered in solrconfig.xml will be sent to that filter -->
|
||||
<filter>
|
||||
<filter-name>SolrRequestFilter</filter-name>
|
||||
<filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
|
||||
<!-- If you are wiring Solr into a larger web application which controls
|
||||
the web context root, you will probably want to mount Solr under
|
||||
a path prefix (app.war with /app/solr mounted into it, for example).
|
||||
You will need to put this prefix in front of the SolrDispatchFilter
|
||||
url-pattern mapping too (/solr/*), and also on any paths for
|
||||
legacy Solr servlet mappings you may be using.
|
||||
For the Admin UI to work properly in a path-prefixed configuration,
|
||||
the admin folder containing the resources needs to be under the app context root
|
||||
named to match the path-prefix. For example:
|
||||
|
||||
.war
|
||||
xxx
|
||||
js
|
||||
main.js
|
||||
-->
|
||||
<!--
|
||||
<init-param>
|
||||
<param-name>path-prefix</param-name>
|
||||
<param-value>/xxx</param-value>
|
||||
</init-param>
|
||||
-->
|
||||
</filter>
|
||||
|
||||
<!--
|
||||
<filter-mapping>
|
||||
<filter-name>LocalHostRestrictionFilter</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
-->
|
||||
|
||||
<filter-mapping>
|
||||
<!--
|
||||
NOTE: When using multicore, /admin JSP URLs with a core specified
|
||||
such as /solr/coreName/admin/stats.jsp get forwarded by a
|
||||
RequestDispatcher to /solr/admin/stats.jsp with the specified core
|
||||
put into request scope keyed as "org.apache.solr.SolrCore".
|
||||
|
||||
It is unnecessary, and potentially problematic, to have the SolrDispatchFilter
|
||||
configured to also filter on forwards. Do not configure
|
||||
this dispatcher as <dispatcher>FORWARD</dispatcher>.
|
||||
-->
|
||||
<filter-name>SolrRequestFilter</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<!-- Otherwise it will continue to the old servlets -->
|
||||
|
||||
<listener>
|
||||
<listener-class>org.dspace.solr.filters.ConfigureLog4jListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>Zookeeper</servlet-name>
|
||||
<servlet-class>org.apache.solr.servlet.ZookeeperInfoServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>LoadAdminUI</servlet-name>
|
||||
<servlet-class>org.apache.solr.servlet.LoadAdminUiServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<!-- Remove in Solr 5.0 -->
|
||||
<!-- This sends SC_MOVED_PERMANENTLY (301) for resources that changed in 4.0 -->
|
||||
<servlet>
|
||||
<servlet-name>RedirectOldAdminUI</servlet-name>
|
||||
<servlet-class>org.apache.solr.servlet.RedirectServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>destination</param-name>
|
||||
<param-value>${context}/#/</param-value>
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>RedirectOldZookeeper</servlet-name>
|
||||
<servlet-class>org.apache.solr.servlet.RedirectServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>destination</param-name>
|
||||
<param-value>${context}/zookeeper</param-value>
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>RedirectLogging</servlet-name>
|
||||
<servlet-class>org.apache.solr.servlet.RedirectServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>destination</param-name>
|
||||
<param-value>${context}/#/~logging</param-value>
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>SolrRestApi</servlet-name>
|
||||
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>org.restlet.application</param-name>
|
||||
<param-value>org.apache.solr.rest.SolrRestApi</param-value>
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>RedirectOldAdminUI</servlet-name>
|
||||
<url-pattern>/admin/</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>RedirectOldAdminUI</servlet-name>
|
||||
<url-pattern>/admin</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>RedirectOldZookeeper</servlet-name>
|
||||
<url-pattern>/zookeeper.jsp</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>RedirectLogging</servlet-name>
|
||||
<url-pattern>/logging</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Servlet Mapping -->
|
||||
<servlet-mapping>
|
||||
<servlet-name>Zookeeper</servlet-name>
|
||||
<url-pattern>/zookeeper</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>LoadAdminUI</servlet-name>
|
||||
<url-pattern>/admin.html</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>SolrRestApi</servlet-name>
|
||||
<url-pattern>/schema/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<mime-mapping>
|
||||
<extension>.xsl</extension>
|
||||
<!-- per http://www.w3.org/TR/2006/PR-xslt20-20061121/ -->
|
||||
<mime-type>application/xslt+xml</mime-type>
|
||||
</mime-mapping>
|
||||
|
||||
<welcome-file-list>
|
||||
<welcome-file>admin.html</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
<!-- People who want to hardcode their "Solr Home" directly into the
|
||||
WAR File can set the JNDI property here...
|
||||
-->
|
||||
<env-entry>
|
||||
<env-entry-name>solr/home</env-entry-name>
|
||||
<env-entry-value>${dspace.dir}/solr</env-entry-value>
|
||||
<env-entry-type>java.lang.String</env-entry-type>
|
||||
</env-entry>
|
||||
|
||||
</web-app>
|
Reference in New Issue
Block a user