From de70cc04a1a57e1922fcfc4f6bcf9e8613485786 Mon Sep 17 00:00:00 2001 From: Sylvain Tricot Date: Fri, 1 Dec 2023 10:17:09 +0100 Subject: [PATCH] Update the Dockerfile. Dockerfile has been modified to be compatible with the last package versions of the Alpine distro --- Dockerfile | 50 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index 51a63e6..67cff5b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,13 +8,15 @@ ARG folder=/opt/msspec user=msspec # Install system dependencies # tools -RUN apk add bash git make gfortran python3 +RUN apk add bash git make gfortran python3 py3-numpy-f2py # headers -RUN apk add python3-dev lapack-dev musl-dev +RUN apk add python3-dev lapack-dev musl-dev hdf5-dev cairo-dev # python packages -RUN apk add py3-virtualenv py3-pip py3-numpy-dev py3-h5py py3-lxml py3-matplotlib py3-numpy py3-pandas py3-cairo py3-scipy py3-setuptools_scm -RUN apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing py3-wxpython -RUN pip install ase pint terminaltables ipython +RUN apk add py3-virtualenv py3-pip py3-numpy-dev py3-h5py py3-lxml py3-matplotlib \ + py3-numpy py3-pandas py3-cairo py3-scipy py3-setuptools_scm \ + py3-terminaltables ipython +RUN apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/community py3-wxpython +#RUN pip install ase pint terminaltables ipython # for GUI RUN apk add ttf-droid adwaita-icon-theme RUN apk add build-base @@ -24,19 +26,29 @@ RUN mkdir -p ${folder}/code WORKDIR ${folder}/code RUN git clone --branch ${branch} https://${login}:${password}@git.ipr.univ-rennes1.fr/epsi/msspec_python3.git . +RUN virtualenv --system-site-packages ${folder}/.local/src/msspec_venv +RUN make pybinding PYTHON=python3 VENV_PATH=${folder}/.local/src/msspec_venv VERBOSE=1 +RUN make -C src sdist PYTHON=python3 VENV_PATH=${folder}/.local/src/msspec_venv VERBOSE=1 +RUN make -C src frontend PYTHON=python3 VENV_PATH=${folder}/.local/src/msspec_venv VERBOSE=1 +RUN source ${folder}/.local/src/msspec_venv/bin/activate && pip install src/dist/msspec*tar.gz + + + # Build -RUN make pybinding NO_VENV=1 PYTHON=python3 VERBOSE=1 -RUN make -C src sdist PYTHON=python3 NO_VENV=1 VENV_PATH=${folder}/.local/src/msspec_venv && \ - pip install src/dist/msspec*tar.gz +#RUN make pybinding NO_VENV=1 PYTHON=python3 VERBOSE=1 +#RUN make -C src sdist PYTHON=python3 NO_VENV=1 VENV_PATH=${folder}/.local/src/msspec_venv +#&& \ +# pip install src/dist/msspec*tar.gz # Add a non-privileged user -RUN adduser -D -s /bin/bash -h ${folder} ${user} +#RUN adduser -D -s /bin/bash -h ${folder} ${user} # Set the working directory in the container -USER ${user} +#USER ${user} -RUN virtualenv --system-site-packages ${folder}/.local/src/msspec_venv -RUN make -C src frontend PYTHON=python3 NO_VENV=1 VENV_PATH=${folder}/.local/src/msspec_venv +#RUN virtualenv --system-site-packages ${folder}/.local/src/msspec_venv +#RUN source ${folder}/.local/src/msspec_venv/bin/activate && pip install src/dist/msspec*.tar.gz +#RUN make -C src frontend PYTHON=python3 NO_VENV=1 VENV_PATH=${folder}/.local/src/msspec_venv @@ -44,7 +56,7 @@ FROM alpine:edge # Variables ARG folder=/opt/msspec user=msspec # Install system dependencies -RUN apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing \ +RUN apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/community \ # hdf5-hl cairo openblas lapack libxml2 libxslt libzlf wxwidgets-gtk3 openjpeg libimagequant \ nano \ py3-virtualenv \ @@ -72,12 +84,8 @@ RUN apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing \ py3-scipy \ py3-setuptools_scm \ py3-wxpython \ - && pip install \ - ase \ - pint \ - terminaltables \ - ipython \ - && pip cache purge \ + py3-terminaltables \ + py3-bayesian-optimization \ # Add a non-privileged user && adduser -D -s /bin/bash -h ${folder} ${user} @@ -92,10 +100,12 @@ COPY --from=builder ${folder}/code/src/dist/msspec*tar.gz msspec.tar.gz RUN virtualenv --system-site-packages .local/src/msspec_venv && \ . .local/src/msspec_venv/bin/activate && \ pip install msspec.tar.gz && \ + pip install ipython && \ + pip cache purge && \ rm -f msspec.tar.gz && \ mkdir -p .local/bin -COPY --from=builder ${folder}/.local/bin/msspec .local/bin/msspec +COPY --from=builder /root/.local/bin/msspec .local/bin/msspec ENV PATH=${folder}/.local/bin:$PATH # Run the msspec frontend command on startup