|
| 1 | +FROM openjdk:8-jdk |
| 2 | + |
| 3 | +RUN apt-get update \ |
| 4 | + && apt-get install -y wget \ |
| 5 | + && apt-get install -y git \ |
| 6 | + && apt-get install -y maven \ |
| 7 | + && apt-get install -y python \ |
| 8 | + && apt-get install -y gcc \ |
| 9 | + && apt-get install -y python-dev \ |
| 10 | + && apt-get install -y python-setuptools \ |
| 11 | + && /usr/bin/easy_install -U pip \ |
| 12 | + && /usr/local/bin/pip install crcmod |
| 13 | + |
| 14 | +MAINTAINER MacArthur Lab |
| 15 | + |
| 16 | +ADD settings.xml /root/.m2/settings.xml |
| 17 | +ADD entrypoint.sh /root/bin/entrypoint.sh |
| 18 | + |
| 19 | +env MVN=mvn |
| 20 | + |
| 21 | +#first get Exomiser built in the local maven for matchbox to import in |
| 22 | +#--------------------------------------------------------------------------- |
| 23 | +# _n.b._ check that the tag here is the same as the exomiser.version declared in the pom |
| 24 | + |
| 25 | +RUN git clone https://github.com/exomiser/Exomiser |
| 26 | +WORKDIR Exomiser |
| 27 | +RUN $MVN -DskipTests=true clean install |
| 28 | + |
| 29 | +#now matchbox (and it will see Exomiser in local maven repo) |
| 30 | +#--------------------------------------------------------------------------- |
| 31 | + |
| 32 | +RUN git clone https://github.com/macarthur-lab/matchbox |
| 33 | +WORKDIR matchbox |
| 34 | +RUN $MVN -Dmaven.test.skip=true clean install package |
| 35 | + |
| 36 | +env MATCHBOX_JAR=/Exomiser/matchbox/target/matchbox-0.1.0.jar |
| 37 | +env MATCHBOX_CONFIG_DIR=/Exomiser/matchbox/config |
| 38 | +env MATCHBOX_DEPLOYMENT_CONFIG_DIR=/matchbox_deployment/config |
| 39 | + |
| 40 | + |
| 41 | +#Now get support data for Exomiser models (for now, cpying, switch with wget) |
| 42 | +#----------------------------------------------------- |
| 43 | + |
| 44 | +#----first get gsutils to interface with google |
| 45 | +RUN wget https://storage.googleapis.com/pub/gsutil.tar.gz \ |
| 46 | + && mkdir /root/gsutils_dir \ |
| 47 | + && tar xfz gsutil.tar.gz -C /root/gsutils_dir \ |
| 48 | + && rm gsutil.tar.gz \ |
| 49 | + && export PATH=${PATH}:/root/gsutils_dir/gsutil |
| 50 | + |
| 51 | + |
| 52 | +#----now get the data and untar it |
| 53 | + |
| 54 | +WORKDIR data |
| 55 | +RUN /root/gsutils_dir/gsutil/gsutil -m -o GSUtil:parallel_composite_upload_threshold=150M cp gs://seqr-reference-data/1711_phenotype.tar.gz data.local.tar.gz \ |
| 56 | + && tar -xzf data.local.tar.gz \ |
| 57 | + && rm data.local.tar.gz \ |
| 58 | + && pwd \ |
| 59 | + && ls -l |
| 60 | + |
| 61 | + |
| 62 | +#Now set matchbox up for deployment and copy over jar and config files |
| 63 | +#--------------------------------------------------------------------------- |
| 64 | +WORKDIR /matchbox_deployment |
| 65 | +RUN cp -rf $MATCHBOX_CONFIG_DIR . \ |
| 66 | + && cp $MATCHBOX_JAR . |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +############################################# |
| 71 | +# # |
| 72 | +# Please note the EXOMISER_DATA_DIR # |
| 73 | +# value. The file system path with ref # |
| 74 | +# data (viewable by docker daemon) must # |
| 75 | +# be mounted to this location in # |
| 76 | +# container at the docker run step # |
| 77 | +# # |
| 78 | +############################################# |
| 79 | +env EXOMISER_DATA_DIR=/Exomiser/matchbox/data |
| 80 | +env EXOMISER_PHENOTYPE_DATA_VERSION=1711 |
| 81 | + |
| 82 | + |
| 83 | +############################################# |
| 84 | +# # |
| 85 | +# This defines if matches that have no # |
| 86 | +# genotypes in common, BUT have a high # |
| 87 | +# phenotype score should be returned as # |
| 88 | +# results # |
| 89 | +# # |
| 90 | +############################################# |
| 91 | +env ALLOW_NO_GENE_IN_COMMON_MATCHES=false |
| 92 | + |
| 93 | +############################################# |
| 94 | +# # |
| 95 | +# Environment variables for Mongo # |
| 96 | +# connection. Please populate before # |
| 97 | +# doing docker build command # |
| 98 | +# # |
| 99 | +############################################# |
| 100 | +env MONGODB_HOSTNAME= |
| 101 | +env MONGODB_PORT=27017 |
| 102 | +env MONGODB_USERNAME= |
| 103 | +env MONGODB_PASSWORD= |
| 104 | +env MONGODB_DATABASE= |
| 105 | + |
| 106 | + |
| 107 | +############################################# |
| 108 | +# # |
| 109 | +# Default server port is 9020, this will # |
| 110 | +# be overwritten if you chose HTTPS below # |
| 111 | +# # |
| 112 | +############################################# |
| 113 | +env USE_HTTPS=false |
| 114 | +env SERVER_PORT=9020 |
| 115 | + |
| 116 | + |
| 117 | +######################################################################### |
| 118 | +# # |
| 119 | +# MME REQUIRES HTTPS IF YOUR SERVER IS NOT PROXIED BEHIND HTTPS. # |
| 120 | +# You can activate HTTPS by, # |
| 121 | +# # |
| 122 | +# 1. UNCOMMENT ALL the following # |
| 123 | +# 2. SET variable USE_HTTPS to be true # |
| 124 | +# # |
| 125 | +# You can override sever port here # |
| 126 | +# # |
| 127 | +######################################################################### |
| 128 | +#env USE_HTTPS=true |
| 129 | +#env SERVER_PORT=8443 |
| 130 | +#env HTTPS_SSL_KEY_STORE=matchbox_keystore |
| 131 | +#env HTTPS_SSL_KEY_STORE_PASSWORD=changeit |
| 132 | +#env HTTPS_SSL_KEY_PASSWORD=temp_ks_pwd__change_me! |
| 133 | + |
| 134 | +#RUN keytool -genkey -noprompt \ |
| 135 | +# -alias matchbox \ |
| 136 | +# -dname "CN=, OU=, O=, L=, S=, C=" \ |
| 137 | +# -keystore $HTTPS_SSL_KEY_STORE \ |
| 138 | +# -storepass $HTTPS_SSL_KEY_STORE_PASSWORD \ |
| 139 | +# -keypass $HTTPS_SSL_KEY_PASSWORD |
| 140 | + |
| 141 | + |
| 142 | +############################################# |
| 143 | +# # |
| 144 | +# This port is exposed by container # |
| 145 | +# # |
| 146 | +############################################# |
| 147 | +EXPOSE $SERVER_PORT |
| 148 | + |
| 149 | + |
| 150 | +########################################################################### |
| 151 | +# IN PRODUCTION, PLEASE MANAGE THESE FILES EXTREMELY CAREFULLY AS THEY # |
| 152 | +# WILL CONTAIN SENSITIVE ACCESS TO YOUR, AND OTHER NODES! # |
| 153 | +# # |
| 154 | +# These files govern/contain, # |
| 155 | +# 1. Tokens that gives OTHER NODES, access to matchbox (config.xml) # |
| 156 | +# 2. Tokens that gives MATCHBOX, access to other nodes (nodes.json) # |
| 157 | +# # |
| 158 | +########################################################################### |
| 159 | +ADD config.xml $MATCHBOX_DEPLOYMENT_CONFIG_DIR |
| 160 | +ADD nodes.json $MATCHBOX_DEPLOYMENT_CONFIG_DIR |
| 161 | + |
| 162 | + |
| 163 | +CMD ["/root/bin/entrypoint.sh"] |
0 commit comments