38 lines
1.5 KiB
Docker
38 lines
1.5 KiB
Docker
# based on official Cytoscape image: https://github.com/cytoscape/docker-cytoscape-desktop
|
|
# version more compact due to:
|
|
# - removed unnecessary packages and instructions --> remote display not used
|
|
# - included all environment variables within this Dockerfile, no need to use Docker compose for the build process
|
|
FROM ubuntu:22.04
|
|
|
|
# environment variables
|
|
ENV CYTOSCAPE_VERSION=3.10.3
|
|
ENV VIRTUAL_SCREEN_WIDTH=1920
|
|
ENV VIRTUAL_SCREEN_HEIGHT=1080
|
|
ENV CYREST_PORT=1234
|
|
ENV SUPERVISOR_CFG="/etc/supervisor/conf.d/supervisord.conf"
|
|
|
|
# labels
|
|
LABEL cytoscape_version="${CYTOSCAPE_VERSION}"
|
|
LABEL context="independent CyREST instance for graph rendering"
|
|
|
|
# change user
|
|
USER root
|
|
# install necessary packages
|
|
RUN apt update && apt full-upgrade -y && apt -y install \
|
|
libxcursor1 \
|
|
openjdk-17-jre \
|
|
supervisor \
|
|
wget \
|
|
xvfb
|
|
# set Java home directory as permanently set ENV var
|
|
RUN echo "export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> /root/.bashrc
|
|
# download and extract Cytoscape
|
|
RUN wget https://github.com/cytoscape/cytoscape/releases/download/${CYTOSCAPE_VERSION}/cytoscape-unix-${CYTOSCAPE_VERSION}.tar.gz
|
|
RUN tar -xf cytoscape-unix-${CYTOSCAPE_VERSION}.tar.gz && rm cytoscape-unix-${CYTOSCAPE_VERSION}.tar.gz
|
|
|
|
# supervisord config
|
|
# supervisor used to start the virtual display via Xvfb and the Cytoscape process with web server (CyREST)
|
|
COPY supervisord.conf ${SUPERVISOR_CFG}
|
|
EXPOSE ${CYREST_PORT}
|
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|