|
| 1 | +FROM python:3.8-buster |
| 2 | + |
| 3 | +ENV MATHICS_HOME=/usr/src/app |
| 4 | +ENV ENTRYPOINT_COMMAND="docker run -it {MATHICS_IMAGE}" |
| 5 | + |
| 6 | +WORKDIR $MATHICS_HOME |
| 7 | + |
| 8 | +COPY entrypoint.sh / |
| 9 | +RUN chmod +x /entrypoint.sh |
| 10 | + |
| 11 | +COPY requirements.txt ./ |
| 12 | +RUN apt-get update |
| 13 | +RUN apt-get install -qq apt-utils |
| 14 | +# we need libsqlite3-dev now if ubuntu doesn't come with that, we'll need |
| 15 | +# to build our own Python |
| 16 | +RUN apt-get install -qq liblapack-dev llvm-dev gfortran maria sqlite3 |
| 17 | +RUN pip install --no-cache-dir -r requirements.txt |
| 18 | +COPY requirements-mathicsscript.txt ./ |
| 19 | +RUN pip install --no-cache-dir -r requirements-mathicsscript.txt |
| 20 | + |
| 21 | +RUN pip install git+git://github.com/mathics/Mathics.git#egg=Mathics3 |
| 22 | +RUN python -m pip install -e git://github.com/Mathics3/mathics-django#egg=Mathics-Django |
| 23 | +RUN pip install pymathics-natlang |
| 24 | +RUN pip install pymathics-graph |
| 25 | +RUN python -m pip install -e git://github.com/Mathics3/mathicsscript#egg=mathicsscript |
| 26 | +RUN cd src/mathicsscript; make |
| 27 | + |
| 28 | +RUN python -m nltk.downloader wordnet omw |
| 29 | +RUN python -m spacy download en |
| 30 | + |
| 31 | +# debug stuff |
| 32 | +RUN apt-get install -qq emacs |
| 33 | +RUN pip install trepan3k |
| 34 | + |
| 35 | +EXPOSE 8000 |
| 36 | + |
| 37 | +RUN groupadd mathics && \ |
| 38 | + useradd -d $MATHICS_HOME -g mathics -m -s /bin/bash mathics && \ |
| 39 | + mkdir -p $MATHICS_HOME/data && \ |
| 40 | + chown -R mathics:mathics $MATHICS_HOME |
| 41 | + |
| 42 | +USER mathics |
| 43 | +COPY django-db/mathics.sqlite /usr/src/app/.local/var/mathics/mathics.sqlite |
| 44 | + |
| 45 | +ENTRYPOINT ["/entrypoint.sh"] |
| 46 | + |
| 47 | +CMD ["--help"] |
0 commit comments