OUTDATED / OBSOLETE: This is not being actively maintained.  Please see DSpace and Docker instead.

Proposal: Support Multiple JDK Versions

Prior Dockerfile Names

branchJDKtagDockerfile
master8master./Dockerfile
dspace-6_x8dspace-6_x./Dockerfile
dspace-5_x8dspace-5_x./Dockerfile
dspace-4_x8dspace-4_x./Dockerfile


New Dockerfile Names


branchJDKtagold tag nameDockerfileMavenANTTomcatNote
master8dspace-7_x-jdk8master/Dockerfile.jdk8maven:latest1.10.5tomcat:8
master8dspace-7_x-jdk8-test
/Dockerfile.jdk8-testmaven:latest1.10.5tomcat:8testing optimizations*
dspace-6_x8dspace-6_x-jdk8dspace-6_x/Dockerfile.jdk8
maven:latest1.10.5tomcat:8
dspace-6_x8dspace-6_x-jdk8-test
/Dockerfile.jdk8-testmaven:latest1.10.5tomcat:8testing optimizations*
dspace-5_x8dspace-5_x-jdk8dspace-5_x/Dockerfile.jdk8maven:latest1.10.5tomcat:8DSpace 5x/Tomcat8 not recommended for usage
dspace-5_x8dspace-5_x-jdk8-test
/Dockerfile.jdk8maven:latest1.10.5tomcat:8testing optimizations*
dspace-5_x7dspace-5_x-jdk7
/Dockerfile.jdk7maven:3.5.4-jdk-7
or maven:latest
1.9.13tomcat:7.0.90-jre7
dspace-5_x7dspace-5_x-jdk7-test
/Dockerfile.jdk7-testmaven:3.5.4-jdk-7
or maven:latest
1.9.13tomcat:7.0.90-jre7testing optimizations*
dspace-4_x7dspace-4_x-jdk7
/Dockerfile.jdk7maven:3.5.4-jdk-7
or maven:latest
1.9.13tomcat:7.0.90-jre7(The old tag dspace-4_x had been built with jdk8)
dspace-4_x7dspace-4_x-jdk7-test
/Dockerfile.jdk7-testmaven:3.5.4-jdk-7
or maven:latest
1.9.13tomcat:7.0.90-jre7(The old tag dspace-4_x had been built with jdk8)

Image Variants for Testing

Note: the following *testing optimizations will be added to image variants

Implementation Notes

Image Verification Script

Sample script output

#!/bin/sh
# CD to docker-compose dir
export DOCKER_OWNER=dspace
export DOCKER_OWNER=terrywbrady
export DPROJ=test-image


function checkImage {

  removeVols
  export DSPACE_VER=$1
  docker-compose -p $DPROJ up -d
  echo " ===== ${DSPACE_VER} ===== "
  docker exec ${DPROJ}_dspace_1 //dspace/bin/dspace version | egrep "DSpace version:|JRE:"
  checkUrl foo
  checkUrl xmlui
  checkUrl oai/request
  checkUrl solr
  checkUrl rest
  echo " ===== ===== ===== "
  docker-compose -p $DPROJ down

}

function checkUrl {
  URL="http://localhost:8080/$1"
  echo "  ---> ${URL} "
  curl -s -I -L $URL | grep "^HTTP"
}

function removeVols {
  vols=`docker volume ls --format "{{.Labels}};{{.Name}}"|grep "com.docker.compose.project=${DPROJ}"|cut -d';' -f2`
  for vol in $vols
  do
    docker volume rm $vol
  done
}

checkImage dspace-7_x-jdk8
checkImage dspace-7_x-jdk8-test
checkImage dspace-6_x-jdk8
checkImage dspace-6_x-jdk8-test
checkImage dspace-5_x-jdk8
checkImage dspace-5_x-jdk8-test
checkImage dspace-5_x-jdk7
checkImage dspace-5_x-jdk7-test
checkImage dspace-4_x-jdk7
checkImage dspace-4_x-jdk7-test