Dockerfile 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. FROM ubuntu:22.04@sha256:340d9b015b194dc6e2a13938944e0d016e57b9679963fdeb9ce021daac430221
  2. LABEL org.opencontainers.image.authors="fil.spm@ucl.ac.uk, Malgorzata Wierzba (m.wierzba@fz-juelich.de), Felix Hoffstaedter (f.hoffstaedter@fz-juelich.de), Remi Gau (remi.gau@gmail.com)"
  3. LABEL org.opencontainers.image.source="https://gin.g-node.org/felixh/cat12-container"
  4. LABEL org.opencontainers.image.version="v1.1dev"
  5. LABEL org.opencontainers.image.licenses="MIT"
  6. LABEL org.opencontainers.image.title="cat12-container"
  7. ENV LANG="en_US.UTF-8" \
  8. LC_ALL="en_US.UTF-8" \
  9. FORCE_SPMMCR="1" \
  10. SPM_HTML_BROWSER="0" \
  11. MCR_INHIBIT_CTF_LOCK="1" \
  12. MCR_VERSION="2017b"
  13. ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu:/opt/MCR-${MCR_VERSION}/v93/runtime/glnxa64:/opt/MCR-${MCR_VERSION}/v93/bin/glnxa64:/opt/MCR-${MCR_VERSION}/v93/sys/os/glnxa64:/opt/MCR-${MCR_VERSION}/v93/extern/bin/glnxa64" \
  14. MATLABCMD="/opt/MCR-${MCR_VERSION}/v93/toolbox/matlab" \
  15. XAPPLRESDIR="/opt//opt/MCR-${MCR_VERSION}/v93/x11/app-defaults" \
  16. MCRROOT="/opt/MCR-${MCR_VERSION}/v93" \
  17. CAT_VERSION=".8.1_r2042_R${MCR_VERSION}"
  18. ENV SPMROOT="/opt/CAT12${CAT_VERSION}" \
  19. PATH="/opt/CAT12${CAT_VERSION}:$PATH" \
  20. STANDALONE="/opt/CAT12${CAT_VERSION}/standalone"
  21. RUN export ND_ENTRYPOINT="/neurodocker/startup.sh" \
  22. && apt-get update -qq \
  23. && apt-get install -y -q --no-install-recommends \
  24. apt-utils \
  25. bc \
  26. bzip2 \
  27. ca-certificates \
  28. curl \
  29. dbus-x11 \
  30. libncurses5 \
  31. libxext6 \
  32. libxmu6 \
  33. libxpm-dev \
  34. libxt6 \
  35. locales \
  36. openjdk-8-jre \
  37. python3 \
  38. pip \
  39. unzip \
  40. && rm -rf /var/lib/apt/lists/* \
  41. && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
  42. && dpkg-reconfigure --frontend=noninteractive locales \
  43. && update-locale LANG="en_US.UTF-8" \
  44. && chmod 777 /opt && chmod a+s /opt
  45. RUN echo "Downloading MATLAB Compiler Runtime ..." \
  46. && export TMPDIR="$(mktemp -d)" \
  47. && curl -o "$TMPDIR/mcr.zip" https://ssd.mathworks.com/supportfiles/downloads/R${MCR_VERSION}/deployment_files/R${MCR_VERSION}/installers/glnxa64/MCR_R${MCR_VERSION}_glnxa64_installer.zip \
  48. && unzip -q "$TMPDIR/mcr.zip" -d "$TMPDIR/mcrtmp" \
  49. && "$TMPDIR/mcrtmp/install" -destinationFolder /opt/MCR-${MCR_VERSION} -mode silent -agreeToLicense yes \
  50. && rm -rf "$TMPDIR" \
  51. && unset TMPDIR
  52. RUN echo "Downloading standalone CAT12 ..." \
  53. && curl -fL -o /tmp/cat12.zip http://www.neuro.uni-jena.de/cat12/CAT12${CAT_VERSION}_MCR_Linux.zip \
  54. && unzip -q /tmp/cat12.zip -d /tmp \
  55. && rm -rf /tmp/cat12.zip \
  56. && mkdir -p /opt/CAT12${CAT_VERSION} \
  57. && mv /tmp/*${CAT_VERSION}*/* /opt/CAT12${CAT_VERSION}/ \
  58. && chmod -R 777 /opt/CAT12${CAT_VERSION} \
  59. # Test
  60. && /opt/CAT12${CAT_VERSION}/spm12 function exit
  61. # transfer code and set permission
  62. RUN mkdir -p /code
  63. COPY ./code/requirements.txt /code
  64. RUN pip install -r /code/requirements.txt
  65. COPY ./code /code
  66. RUN ls /code && find /code -type f -print0 | xargs -0 chmod +r
  67. WORKDIR ${STANDALONE}
  68. ENTRYPOINT ["python3", "/code/main.py"]