diff --git a/clarin-dspace-docker/.gitignore b/clarin-dspace-docker/.gitignore index f128848398945f5645bc21e420af113dda151742..9b1fae385e2cbbdb984f7be267578ecc4bf58b04 100644 --- a/clarin-dspace-docker/.gitignore +++ b/clarin-dspace-docker/.gitignore @@ -1,3 +1,2 @@ commul-customization/certs/* password_mod.sh -commul-customization/local.properties diff --git a/clarin-dspace-docker/Dockerfile.dspace b/clarin-dspace-docker/Dockerfile.dspace index da53de0d508179f3ed194f7921018f8643101a96..b8e3d6de43428791271816ea9274d0ee5b280b78 100644 --- a/clarin-dspace-docker/Dockerfile.dspace +++ b/clarin-dspace-docker/Dockerfile.dspace @@ -51,23 +51,21 @@ COPY commul-customization/tomcat-server.xml /opt/tomcat8/conf/server.xml # install Dspace -RUN git clone https://github.com/commul/clarin-dspace.git -b clarin /opt/repository/sources/dspace -WORKDIR /opt/repository/sources/dspace/utilities/project_helpers -RUN ./setup.sh /opt/repository/workspace -COPY commul-customization/variable.makefile /opt/repository/workspace/config/variable.makefile +RUN mkdir /tmp/commul-customization +COPY commul-customization/variable.makefile /tmp/commul-customization/ # copy over configs and startup scripts -COPY commul-customization/start_stack.sh /opt/repository/workspace/scripts/ -COPY commul-customization/stop_stack.sh /opt/repository/workspace/scripts/ -COPY commul-customization/local.properties /opt/repository/workspace/sources/ -RUN chmod u+x /opt/repository/workspace/scripts/*_stack.sh - -# install libs -WORKDIR /opt/repository/workspace/scripts -RUN make install_libs +COPY commul-customization/start_stack.sh /tmp/commul-customization/ +COPY commul-customization/stop_stack.sh /tmp/commul-customization/ +COPY commul-customization/local.properties /tmp/commul-customization/ # copy over config files -COPY commul-customization/aai_config.js /tmp/ +COPY commul-customization/aai_config.js /tmp/commul-customization/ +#CMD tail -f /opt/repository/sources/dspace/dspace-api/src/test/data/dspaceFolder/log/dspace.log + +COPY dspace-entrypoint.sh / +RUN chmod +x dspace-entrypoint.sh + +ENTRYPOINT ["/dspace-entrypoint.sh"] -CMD tail -f /opt/repository/sources/dspace/dspace-api/src/test/data/dspaceFolder/log/dspace.log diff --git a/clarin-dspace-docker/changelog.txt b/clarin-dspace-docker/changelog.txt new file mode 100644 index 0000000000000000000000000000000000000000..cac070f947f078c68852aab5b220206e57fccf40 --- /dev/null +++ b/clarin-dspace-docker/changelog.txt @@ -0,0 +1,25 @@ +Releases +======== + +gitlab.scientificnet.org:4567/commul/dspace/dspace + +0.3 +added dspace-entrypoint.sh v0.2 + +0.2 +Removed DSpace's installation from the Dockerfile. +Moved commul-customization into /tmp , so is possible to mount external volumes into /opt/repository/ and then copying files again from /tmp + +0.1 +Original build from https://github.com/commul/clarin-dspace-docker @ e5ad160 + + +gitlab.scientificnet.org:4567/commul/dspace/postgres + +0.3 +added env variables + +0.2 + +0.1 +Original build from https://github.com/commul/clarin-dspace-docker @ e5ad160 diff --git a/clarin-dspace-docker/commul-customization/local.properties.dist b/clarin-dspace-docker/commul-customization/local.properties similarity index 100% rename from clarin-dspace-docker/commul-customization/local.properties.dist rename to clarin-dspace-docker/commul-customization/local.properties diff --git a/clarin-dspace-docker/dspace-entrypoint.sh b/clarin-dspace-docker/dspace-entrypoint.sh new file mode 100644 index 0000000000000000000000000000000000000000..4d6624c9b62669d28c3308bc2aa3e581c88c0368 --- /dev/null +++ b/clarin-dspace-docker/dspace-entrypoint.sh @@ -0,0 +1,214 @@ +#!/bin/bash +# +# Wiki https://github.com/ufal/clarin-dspace/wiki/Installation +# +# + +MAJOR=0 +BUILD=2 +VERSION="${MAJOR}.${BUILD}" + + +#set -ex + +# let's define some variables +export DSPACE_INSTANCE_NAME=repository +export DSPACE_SOURCE_DIRECTORY=/opt/repository/sources/dspace +export DSPACE_WORKSPACE=/opt/repository/workspace +export DSPACE_INSTALLATION_DIRECTORY=/opt/repository/installations + +AAI_CONFIGFILE="/opt/lindat-dspace/installation/webapps/xmlui/themes/UFAL/lib/js/aai_config.js" +DSPACE_CONFIGFILE="$DSPACE_WORKSPACE/sources/local.properties" + +# +# functions +# +_logger () { + MSG=$1 + if [ ${DEBUG} ]; then + echo -ne "${MSG}" +# else +# echo -ne "${MSG}" >> ${LogFile} + fi +} + + +_loggerDate() { + _logger "[$(date)] $*" +} + + +_exit() { + if [ -z $1 ]; then + E_CODE=0 + else + E_CODE=$1 + fi + rm -rf ${TemporaryPath} + _loggerDate "Script completed\n" + exit ${E_CODE} +} + + +_printVersion() { + echo "${BASENAME} version ${VERSION}" +} + +_printHelp() { + echo "${BASENAME}" + echo "Assembly some stuff, creating things..." + echo + echo "Supported options:" + echo " -d|--debug enable debug" + echo " -V|--version report program version" + echo " -h|--help print this help" + echo +} + +_printComment () { + MSG=$1 + echo "<"'!'"-- ${MSG} -->" +} + +_checkenv () { +set -x + _loggerDate "Checking env variables " + echo $* + tot_args=$# + echo $tot_args + count=0 + while [ "$1" ] + do + echo "." + shift + ((count++)) + done + echo $tot_args $count + if [ "$tot_args" -ne "$count" ];then + exit 1 + fi +set +x +} + +# +# main script +# + +# argument parsing +while [ $1 ]; do + case $1 in + -d|--debug) DEBUG=1 + shift + ;; + -V|--version) _printVersion + exit 0 + ;; + -h|--help) _printHelp + exit 0 + ;; + -t|--test) _notifyByIcingaPassiveCheck + exit 0 + ;; + *) _printHelp + exit 0 + ;; + esac +done + +_loggerDate "Starting ${BASENAME}\n" + +_loggerDate "Cloning lindat-dspace repository..." + +if [ ! -d $DSPACE_SOURCE_DIRECTORY ] +then + _logger "in $DSPACE_SOURCE_DIRECTORY \n" + git clone https://github.com/ufal/lindat-dspace.git -b lindat $DSPACE_SOURCE_DIRECTORY +else + _logger "skip! $DSPACE_SOURCE_DIRECTORY already exists \n" +fi + +cd $DSPACE_SOURCE_DIRECTORY/utilities/project_helpers + +_loggerDate "Creating workspace..." + +if [ ! -d $DSPACE_WORKSPACE ] +then + _logger "$DSPACE_WORKSPACE \n" + ./setup.sh /opt/repository/workspace +else + _logger "skip! $DSPACE_WORKSPACE already exists \n" +fi + + +_loggerDate "Copy makefile..." +if [ ! -f $DSPACE_WORKSPACE/config/variable.makefile ] +then + cp /tmp/commul-customization/variable.makefile $DSPACE_WORKSPACE/config/ + _logger "$DSPACE_WORKSPACE/config/variable.makefile\n" +else + _logger "skip! $DSPACE_WORKSPACE/config/variable.makefile already exists\n" +fi +_loggerDate "Copy local.properties..." +if [ ! -f $DSPACE_CONFIGFILE ] +then + set -x + cp /tmp/commul-customization/local.properties $DSPACE_CONFIGFILE + set +x +else + _logger "skip! $DSPACE_CONFIGFILE already exists\n" +fi + + +_loggerDate "Compilation and Deployment of DSpace..." +cd $DSPACE_WORKSPACE/scripts/ + +if [ ! -f $DSPACE_WORKSPACE/scripts/install_libs.done ] +then + make install_libs + touch $DSPACE_WORKSPACE/scripts/install_libs.done +else + _logger "already done \n" +fi + + +if [ ! -f $DSPACE_WORKSPACE/scripts/fresh_install.done ] +then + make compile + make fresh_install + touch $DSPACE_WORKSPACE/scripts/fresh_install.done +else + _logger "already done \n" +fi + +if [ ! -f $DSPACE_WORKSPACE/scripts/postinstall.done ] +then + make postinstall + touch $DSPACE_WORKSPACE/scripts/postinstall.done + _logger "OK\n" +else + _logger "already done \n" +fi + +_loggerDate "Copy aai_config.js..." +if [ ! -f $AAI_CONFIGFILE ] +then + set -x + cp /tmp/commul-customization/aai_config.js $AAI_CONFIGFILE + set +x +else + _logger "skip! $AAI_CONFIGFILE already exists\n" +fi + +_loggerDate "Create dspace admin..." +if [ ! -f $DSPACE_WORKSPACE/scripts/tomcatadmin.done ] +then + su tomcat8 -c "/opt/lindat-dspace/installation/bin/dspace create-administrator" + touch $DSPACE_WORKSPACE/scripts/tomcatadmin.done + _logger "OK\n" +else + _logger "already done \n" +fi + +_loggerDate "Starting Tomcat..." +/etc/init.d/tomcat8 start +sleep infinity diff --git a/kubernetes/yaml/servlet.yaml b/kubernetes/yaml/servlet.yaml new file mode 100644 index 0000000000000000000000000000000000000000..33d0cd6cc3af54d2a8ed9739bc34ab33887583e6 --- /dev/null +++ b/kubernetes/yaml/servlet.yaml @@ -0,0 +1,67 @@ +apiVersion: v1 +kind: Pod +metadata: + name: servlet +spec: + containers: + - args: + - --debug + env: + - name: dspaceuser + value: dbuser + - name: dspacepassword + valueFrom: + secretKeyRef: + key: dspace.password + name: dspace-secrets + - name: dspacedbname + value: dbname + - name: dspaceutilsdbname + value: dbnamespace + image: gitlab.scientificnet.org:4567/commul/dspace/dspace:0.3 + imagePullPolicy: Always + name: servlet + ports: + - containerPort: 8080 + protocol: TCP + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/lindat-dspace + name: cephfs-lindat + - mountPath: /opt/repository + name: cephfs-repository + dnsPolicy: ClusterFirst + imagePullSecrets: + - name: gitlab-scientificnet-org-registry + restartPolicy: Always + volumes: + - cephfs: + monitors: + - 10.8.55.201:6789 + - 10.8.55.202:6789 + - 10.8.55.203:6789 + - 10.7.55.201:6789 + - 10.7.55.202:6789 + path: /services/kubernetes/eurac/commul/dspace-dev/lindat-common + secretRef: + name: client.fs.services.kubernetes.eurac.commul.dspace-dev + user: fs.services.kubernetes.eurac.commul.dspace-dev + name: cephfs-lindat + - cephfs: + monitors: + - 10.8.55.201:6789 + - 10.8.55.202:6789 + - 10.8.55.203:6789 + - 10.7.55.201:6789 + - 10.7.55.202:6789 + path: /services/kubernetes/eurac/commul/dspace-dev/repository + secretRef: + name: client.fs.services.kubernetes.eurac.commul.dspace-dev + user: fs.services.kubernetes.eurac.commul.dspace-dev + name: cephfs-repository + - name: default-token-c1pd4 + secret: + defaultMode: 420 + secretName: default-token-c1pd4