Skip to content
Snippets Groups Projects
Commit 3ae9e740 authored by Yee-Ting Li's avatar Yee-Ting Li
Browse files

feat: deskop dockerfile

parent bfb715ad
No related branches found
No related tags found
No related merge requests found
# syntax=docker/dockerfile:experimental
FROM slaclab/xfce:ubuntu18.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.6.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
zip unzip \
python \
python3 \
python3-dev \
python3-setuptools \
python3-pip \
libtiff5 \
netbase \
ed \
curl \
iputils-ping \
sudo \
net-tools \
openssh-server \
jq \
munge \
mongodb-org-shell mongodb-org-tools \
&& curl -sL https://deb.nodesource.com/setup_6.x | bash - \
&& apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/* \
&& ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3
ENV CRYOSPARC_ROOT_DIR /app
RUN mkdir -p ${CRYOSPARC_ROOT_DIR}
WORKDIR ${CRYOSPARC_ROOT_DIR}
ARG CRYOSPARC_VERSION
ENV CRYOSPARC_VERSION=${CRYOSPARC_VERSION}
ARG CRYOSPARC_PATCH
ENV CRYOSPARC_PATCH=${CRYOSPARC_PATCH}
# install master
ENV CRYOSPARC_MASTER_DIR ${CRYOSPARC_ROOT_DIR}/cryosparc_master
RUN --mount=type=secret,id=cryosparc_license_id \
curl -L https://get.cryosparc.com/download/master-v${CRYOSPARC_VERSION}/$(cat /run/secrets/cryosparc_license_id) | tar -xz \
&& cd ${CRYOSPARC_MASTER_DIR} \
&& bash ./install.sh --license "$(cat /run/secrets/cryosparc_license_id)" --yes --allowroot \
&& sed -i 's/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=TBD/g' ${CRYOSPARC_MASTER_DIR}/config.sh
# update patches
RUN wget https://get.cryosparc.com/patch_get/v${CRYOSPARC_VERSION}+${CRYOSPARC_PATCH}/master -O ${CRYOSPARC_ROOT_DIR}/cryosparc_master_patch.tar.gz \
&& tar -vxzf ${CRYOSPARC_ROOT_DIR}/cryosparc_master_patch.tar.gz --overwrite --strip-components=1 --directory=${CRYOSPARC_MASTER_DIR} \
&& rm -f ${CRYOSPARC_ROOT_DIR}/cryosparc_master_patch.tar.gz
# patches
RUN sed -i 's: disk_has_space=.*: disk_has_space="true":g' ${CRYOSPARC_MASTER_DIR}/bin/cryosparcm
# install worker
ENV CRYOSPARC_WORKER_DIR ${CRYOSPARC_ROOT_DIR}/cryosparc_worker
RUN --mount=type=secret,id=cryosparc_license_id \
curl -L https://get.cryosparc.com/download/worker-v${CRYOSPARC_VERSION}/$(cat /run/secrets/cryosparc_license_id) | tar -xz \
&& cd ${CRYOSPARC_WORKER_DIR} \
&& bash ./install.sh --license "$(cat /run/secrets/cryosparc_license_id)" --yes --cudapath /usr/local/cuda \
&& sed -i 's/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=TBD/g' ${CRYOSPARC_WORKER_DIR}/config.sh
# update patches
RUN wget https://get.cryosparc.com/patch_get/v${CRYOSPARC_VERSION}+${CRYOSPARC_PATCH}/worker -O ${CRYOSPARC_ROOT_DIR}/cryosparc_worker_patch.tar.gz \
&& tar -vxzf ${CRYOSPARC_ROOT_DIR}/cryosparc_worker_patch.tar.gz --overwrite --strip-components=1 --directory=${CRYOSPARC_WORKER_DIR} \
&& rm -f ${CRYOSPARC_ROOT_DIR}/cryosparc_worker_patch.tar.gz
# compile libtiff
RUN ${CRYOSPARC_MASTER_DIR}/deps/anaconda/envs/cryosparc_master_env/bin/python3.7 ${CRYOSPARC_MASTER_DIR}/cryosparc_compute/blobio/tiff.py \
&& ${CRYOSPARC_WORKER_DIR}/deps/anaconda/envs/cryosparc_worker_env/bin/python3.7 ${CRYOSPARC_WORKER_DIR}/cryosparc_compute/blobio/tiff.py
# install cryosparc live
ARG CRYOSPARC_LIVE
RUN --mount=type=secret,id=cryosparc_license_id \
if [ ! -z $CRYOSPARC_LIVE ]; then cd ${CRYOSPARC_MASTER_DIR} \
curl -L "https://get.cryosparc.com/download/master-${CRYOSPARC_LIVE}/$(cat /run/secrets/cryosparc_license_id)" | tar -xz --overwrite --strip-components=1 --directory . \
&& ${CRYOSPARC_MASTER_DIR}/bin/cryosparcm deps \
&& sed -i 's/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=TBD/g' ${CRYOSPARC_MASTER_DIR}/config.sh; \
fi
RUN --mount=type=secret,id=cryosparc_license_id \
if [ ! -z $CRYOSPARC_LIVE ]; then cd ${CRYOSPARC_WORKER_DIR} \
curl -L "https://get.cryosparc.com/download/worker-${CRYOSPARC_LIVE}/$(cat /run/secrets/cryosparc_license_id)" | tar -xz --overwrite --strip-components=1 --directory . \
&& ${CRYOSPARC_WORKER_DIR}/bin/cryosparcw deps \
&& sed -i 's/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=TBD/g' ${CRYOSPARC_WORKER_DIR}/config.sh; \
fi
####
## install motioncor
####
ARG MOTIONCOR2_VERSION=1.2.3
ENV MOTIONCOR2_VERSION=${MOTIONCOR2_VERSION}
RUN cd /usr/local/bin \
&& curl -L 'https://drive.google.com/uc?export=download&id=17dOr87lhhxGhg6xQYr4f8eo0OEo-GdUI' > MotionCor2_${MOTIONCOR2_VERSION}.zip \
&& unzip MotionCor2_${MOTIONCOR2_VERSION}.zip \
&& rm -f MotionCor2_${MOTIONCOR2_VERSION}.zip \
&& ln -sf MotionCor2_${MOTIONCOR2_VERSION}-Cuda100 MotionCor2
###
# install topaz
###
ARG TOPAZ_VERSION=0.2.3
ENV TOPAZ_VERSION=${TOPAZ_VERSION}
RUN /app/cryosparc_worker/deps/anaconda/bin/conda install topaz=${TOPAZ_VERSION} cudatoolkit=10.1 -c tbepler -c pytorch
###
#
### finish off
COPY entrypoint.bash /entrypoint.bash
COPY cryosparc.sh /cryosparc.sh
COPY cryosparc-server.sh ${CRYOSPARC_MASTER_DIR}/bin/cryosparc-server.sh
# autostart stuff
COPY firefox.autostart /etc/xdg/autostart/firefox.desktop
RUN rm -f /etc/xdg/autostart/xscreensaver.desktop /etc/xdg/autostart/blueman.desktop /etc/xdg/autostart/mate-screensaver.desktop /etc/xdg/autostart/print-applet.desktop /etc/xdg/autostart/xfce4-power-manager.desktop /etc/xdg/autostart/mate-power-manager.desktop
EXPOSE 39000
EXPOSE 39001
EXPOSE 39002
EXPOSE 39003
EXPOSE 39004
EXPOSE 39006
ENTRYPOINT /entrypoint.bash
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment