1- FROM ubuntu:focal
1+ vFROM ubuntu:focal
22
33ENV TZ=US/Eastern
44ENV MATHICS_HOME=/usr/src/app
@@ -13,43 +13,70 @@ RUN chmod +x /entrypoint.sh
1313COPY requirements.txt ./
1414RUN apt-get update
1515RUN apt-get install -qq apt-utils
16+
1617# we need libsqlite3-dev now if ubuntu doesn't come with that, we'll need
1718# to build our own Python
1819# Leave out inkscape for now.
19- RUN DEBIAN_FRONTEND="noninteractive" TZ="US/Eastern" apt-get install -qq liblapack-dev llvm-10 llvm-10-dev gfortran maria libmysqlclient-dev sqlite3 python3-pip python3-setuptools git python3-matplotlib python-matplotlib-data x11-apps asymptote w3m latexmk texlive-xetex lmodern texlive-latex-extra texlive-fonts-recommended nodejs npm
20+
21+ # inxi and mesa-utils might be optional
22+ # npm puls in nodejs, but we'll be explicit.
23+ # llvm-11 and llvm-11-dev might work?
24+
25+ # Install lots of packages
26+ RUN DEBIAN_FRONTEND="noninteractive" TZ="US/Eastern" apt-get install -qq liblapack-dev llvm-10 llvm-10-dev gfortran maria libmysqlclient-dev sqlite3 python3-pip python3-setuptools git python3-numpy python3-matplotlib python-matplotlib-data x11-apps asymptote w3m latexmk texlive-xetex lmodern texlive-latex-extra texlive-fonts-recommended nodejs npm xserver-xorg-video-all libgl1-mesa-glx libgl1-mesa-dri mesa-utils evince
27+
2028RUN pip install --no-cache-dir -r requirements.txt
2129COPY requirements-mathicsscript.txt ./
2230RUN pip install --no-cache-dir -r requirements-mathicsscript.txt
2331
32+ ################
33+ # Mathics core #
34+ ################
2435# RUN pip install "Mathics3[full]>=3.1.0"
2536RUN pip install git+git://github.com/mathics/Mathics.git#egg=Mathics3[full]
2637
27- # Some time later, build mathics.pdf
28- # We need to work around inkscape crashing due to a lack of an X11 connection.
29- # RUN git clone https://github.com/mathics/Mathics.git
30- # RUN (cd Mathics && ${PYTHON} ./setup.py develop && make doc)
38+ RUN git clone https://github.com/mathics/Mathics.git
39+ COPY tex-images/*.pdf Mathics/mathics/doc/tex/
40+ ENV DOC_LATEX_FILE=/usr/src/app/Mathics/mathics/doc/tex/documentation.tex
41+ RUN (cd Mathics && ${PYTHON} ./setup.py develop)
42+ RUN (cd Mathics && make texdoc || /bin/true)
3143
32- # RUN DEBIAN_FRONTEND="noninteractive" TZ="US/Eastern" apt-get install -qq texlive-font-utils latexmk texlive-xetex lmodern inkscape texlive-latex-extra texlive-fonts-recommended asymptote
33- # RUN SANDBOX=t ${PYTHON} /usr/local/lib/python3.8/dist-packages/mathics/docpipeline.py -ot
34- # ... run latex
35- RUN ${PYTHON} -m pip install -e git://github.com/Mathics3/mathics-django#egg=Mathics-Django[full]
44+ #####################
45+ # Mathics Pymathics #
46+ #####################
3647
37- RUN pip install pymathics-natlang
3848RUN pip install pymathics-graph
39- RUN (cd src/mathics-django && npm install && make)
40- RUN (cd src/mathics-django && ${PYTHON} mathics_django/docpipeline.py -o)
41- RUN mkdir -p /usr/src/app/.local/var/mathics && cp -v /root/.local/var/mathics/doc_data.pcl /usr/src/app/.local/var/mathics/doc_data.pcl
49+
50+ # natlang installs spacy so this should come first
51+ RUN pip install pymathics-natlang
52+ RUN ${PYTHON} -m spacy download en
53+ RUN ${PYTHON} -m nltk.downloader wordnet omw
54+
55+ ##################
56+ # Mathicsscript #
57+ ##################
4258
4359RUN ${PYTHON} -m pip install -e git://github.com/Mathics3/mathicsscript#egg=mathicsscript[full]
4460RUN (cd src/mathicsscript && make)
4561
46- RUN ${PYTHON} -m nltk.downloader wordnet omw
47- RUN ${PYTHON} -m spacy download en
62+ ##################
63+ # Mathics Django #
64+ ##################
65+ RUN ${PYTHON} -m pip install -e git://github.com/Mathics3/mathics-django#egg=Mathics-Django[full]
66+
67+ RUN (cd src/mathics-django && npm install && make)
68+ RUN (cd src/mathics-django && ${PYTHON} mathics_django/docpipeline.py -o)
69+ RUN mkdir -p /usr/src/app/.local/var/mathics && cp -v /root/.local/var/mathics/doc_data.pcl /usr/src/app/.local/var/mathics/doc_data.pcl
4870
49- # debug stuff
71+ ##################
72+ # debug stuff #
73+ ##################
5074RUN apt-get install -qq emacs
5175RUN pip install trepan3k
5276
77+ ##################
78+ # Finish up #
79+ ##################
5380EXPOSE 8000
5481
5582RUN groupadd mathics && \
0 commit comments