diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile index d51bd8a..c141c59 100644 --- a/docker/base/Dockerfile +++ b/docker/base/Dockerfile @@ -16,37 +16,22 @@ ENV LK_HOME /labkey # # Create directories required for running LabKey Server # -run mkdir -p /labkey/ -run mkdir -p /labkey/bin -run mkdir -p /labkey/svn +RUN mkdir -p /labkey/ +RUN mkdir -p /labkey/bin +RUN mkdir -p /labkey/svn -# Update the Ubuntu and install required tools -RUN (apt-get update; \ - apt-get -y -q install wget tar unzip subversion wget python-software-properties software-properties-common; \ - apt-get clean -y) - -# Install Java +# Do all updates and install java in single step to slim down image +# Sequence tools are installed using a separate shell script since this config is shared by non-docker usages RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \ add-apt-repository -y ppa:webupd8team/java && \ apt-get update && \ - apt-get install -y oracle-java8-installer && \ - rm -rf /var/cache/oracle-jdk8-installer - -#rm -rf /var/lib/apt/lists/* && \ + apt-get -y -q install wget tar unzip subversion wget python-software-properties software-properties-common oracle-java8-installer && \ + rm -rf /var/cache/oracle-jdk8-installer && \ + svn co --username cpas --password cpas --no-auth-cache https://hedgehog.fhcrc.org/tor/stedi/branches/${SVN_BRANCH}/externalModules/labModules/SequenceAnalysis/pipeline_code ${LK_HOME}/svn/ && \ + ${LK_HOME}/svn/sequence_tools_install.sh -d ${LK_HOME} -c && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + apt-get clean -y ENV JAVA_HOME /usr/lib/jvm/java-8-oracle -ENV PATH $PATH:$JAVA_HOME/bin - -# this is not the ideal way to install all these tools, but the code is currently shared by non-docker usages -RUN svn co --username cpas --password cpas --no-auth-cache https://hedgehog.fhcrc.org/tor/stedi/branches/${SVN_BRANCH}/externalModules/labModules/SequenceAnalysis/pipeline_code ${LK_HOME}/svn/ -RUN ${LK_HOME}/svn/sequence_tools_install.sh -d ${LK_HOME} -RUN rm -Rf ${LK_HOME}/tool_src - -# Clean up -RUN rm -rf /var/lib/apt/lists/* - -#note: need to sort out users/permissions -#-u labkey -#chown -R labkey:labkey $LK_HOME - +ENV PATH $LK_HOME/bin:$JAVA_HOME/bin:$PATH diff --git a/docker/exacloud/Dockerfile b/docker/exacloud/Dockerfile new file mode 100644 index 0000000..cdaa3b0 --- /dev/null +++ b/docker/exacloud/Dockerfile @@ -0,0 +1,12 @@ +# DOCKER-VERSION 1.0.0 +# +# Dockerfile for remote pipeline DISCVR-Seq Servers. This will install remote LabKey Server code in addition to various +# sequence tools used by the pipelines +# + +from bbimber/discvr-seq:16.1server +maintainer bbimber@gmail.com + +# the only reason for this command is to pre-explode all the modules to save time when running the container +RUN date && cd $LK_HOME && java -cp $JAVA_HOME/lib/tools.jar:$LK_HOME/labkeyBootstrap.jar org.labkey.bootstrap.ClusterBootstrap + diff --git a/docker/remote/Dockerfile b/docker/remote/Dockerfile index 5d3b6ba..39def3e 100644 --- a/docker/remote/Dockerfile +++ b/docker/remote/Dockerfile @@ -1,10 +1,11 @@ # DOCKER-VERSION 1.0.0 +# DOCKER-VERSION 1.0.0 # # Dockerfile for remote pipeline DISCVR-Seq Servers. This will install remote LabKey Server code in addition to various # sequence tools used by the pipelines # -from bbimber/discvr-seq +from bbimber/discvr-seq:16.1 maintainer bbimber@gmail.com # these will vary by LabKey version: @@ -15,23 +16,35 @@ ENV SVN_BRANCH discvr16.1 ENV LK_HOME /labkey # -# Create directories required for running LabKey Server -# -run mkdir -p /labkey/ -run mkdir -p /labkey/configs +# This creates a container intended to run as a remote pipeline server. You must provide the config files, +# which should at minimum include a pipelineConfig.xml file. You will likely also need to mount the +# shared folder where you data resides and consider setting an activemq host entry. However, these are all +# configured via pipelineConfig.xml so you do have flexibility. +# +# Example Command: +# +# docker run --rm -v /:/labkey/configs -v /:/labkey_data bbimber/discvr-seq: +# +# Consider adding --add-host activemq:XXX.XXX.XXX.XXX, depending on how pipelineConfig.xml is set up +# + +run mkdir -p /labkey/ && mkdir -p /labkey/configs && mkdir -p /labkey/logs # download latest build -RUN wget -r --trust-server-names --no-check-certificate http://teamcity.labkey.org/guestAuth/repository/download/${TC_PROJECT}/.lastSuccessful/${DIST_NAME}/${GZ_PREFIX}-{build.number}-${DIST_NAME}-bin.tar.gz -RUN mv ./teamcity.labkey.org/guestAuth/repository/download/${TC_PROJECT}/.lastSuccessful/${DIST_NAME}/*.gz ./ -RUN rm -Rf ./teamcity.labkey.org +RUN wget -r --trust-server-names --no-check-certificate http://teamcity.labkey.org/guestAuth/repository/download/${TC_PROJECT}/.lastSuccessful/${DIST_NAME}/${GZ_PREFIX}-{build.number}-${DIST_NAME}-bin.tar.gz && \ + mv ./teamcity.labkey.org/guestAuth/repository/download/${TC_PROJECT}/.lastSuccessful/${DIST_NAME}/*.gz ./ && \ + rm -Rf ./teamcity.labkey.org && \ + GZ=$(ls -tr | grep '^LabKey.*\.gz$' | tail -n -1) && \ + tar -xf $GZ && \ + DIR=$(echo $GZ | sed -e "s/.tar.gz$//") && \ + cp -R ${DIR}/bin $LK_HOME && \ + cp -R ${DIR}/modules $LK_HOME && \ + cp -R ${DIR}/labkeywebapp $LK_HOME && \ + cp -R ${DIR}/pipeline-lib $LK_HOME && \ + cp -R ${DIR}/tomcat-lib/labkeyBootstrap.jar $LK_HOME && \ + mkdir -p /labkey/apps/tomcat/lib/ && \ + cp -f ${DIR}/tomcat-lib/*.jar /labkey/apps/tomcat/lib/ && \ + cd $LK_HOME && \ + rm -rf ${DIR} && \ + rm -Rf $GZ -RUN (GZ=$(ls -tr | grep '^LabKey.*\.gz$' | tail -n -1); \ - tar -xf $GZ; \ - DIR=$(echo $GZ | sed -e "s/.tar.gz$//"); \ - cp -R ${DIR}/bin $LK_HOME; \ - cp -R ${DIR}/modules $LK_HOME; \ - cp -R ${DIR}/labkeywebapp $LK_HOME; \ - cp -R ${DIR}/pipeline-lib $LK_HOME; \ - mkdir -p /labkey/apps/tomcat/lib/; \ - cp -f ${DIR}/tomcat-lib/*.jar /labkey/apps/tomcat/lib/; \ - rm -rf ${DIR})