@@ -20,21 +20,22 @@ RUN adduser --disabled-password --gecos '' theia && \
20
20
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
21
21
chown -R theia:theia /home/theia
22
22
23
+ RUN echo "Installing python modules in system python versions" \
24
+ && PY_PATHS="/usr/bin/python /usr/bin/python3 and /usr/local/bin/python3" \
25
+ && for v in ${PY_PATHS}; do echo "******* ${v} *******" ; ${v} -m pip install --upgrade pip setuptools wheel; done \
26
+ && for v in ${PY_PATHS}; do echo "******* ${v} *******" ; ${v} -m pip install --upgrade tox tox-pyenv ipython pylint pytest mock nose flake8 flake8-docstrings autopep8; done \
27
+ && for v in ${PY_PATHS}; do ${v} -m pip install -r /tmp/requirements.txt; done \
28
+ && /usr/local/bin/python3 -m pip install -U black isort
29
+ # && ln -f -s /home/theia/.pyenv/versions/*/bin/black /bin/ \
30
+ # && ln -f -s /home/theia/.pyenv/versions/*/bin/isort /bin/
23
31
24
32
USER theia
25
33
WORKDIR /home/theia
26
34
27
- # Python2 and Python3 are installed by parent Dockerfile:
28
- # https://github.com/theia-ide/theia-apps/blob/master/theiaide/theia-python/Dockerfile
29
- # Here we save the preinstalled python paths because we need to use them later.
30
-
31
- RUN which python > ~/python2_path
32
- RUN which python3 > ~/python3_path
33
-
34
35
RUN /bin/bash -c " \
35
36
git clone https://github.com/pyenv/pyenv.git ~/.pyenv \
36
37
&& git clone https://github.com/momo-lab/xxenv-latest.git ~/.pyenv/plugins/latest \
37
- "
38
+ && git clone https://github.com/doloopwhile/pyenv-register.git ~/.pyenv/plugins/pyenv-register "
38
39
39
40
RUN echo 'export PYENV_ROOT="/home/theia/.pyenv"' >> ~/.bashrc \
40
41
&& echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc \
@@ -50,27 +51,19 @@ RUN export PATH=/home/theia/.pyenv/bin:$PATH; \
50
51
&& pyenv latest install 3.7 \
51
52
&& pyenv latest install 3.8 \
52
53
&& pyenv install 3.9-dev \
54
+ && pyenv register /usr/bin/python \
55
+ && pyenv register /usr/bin/python3 \
56
+ && pyenv register /usr/local/bin/python3 \
53
57
&& pyenv local $(pyenv versions --bare) \
54
58
&& pyenv versions
55
59
56
- RUN echo "Installing python modules" \
57
- && PY_PATHS=$(ls -1 /home/theia/.pyenv/versions/*/bin/python?.?) \
60
+ RUN echo "Installing python modules in pyenv python versions " \
61
+ && PY_PATHS=$(ls -1 /home/theia/.pyenv/versions/[0-9] */bin/python?.?) \
58
62
&& for v in ${PY_PATHS}; do echo "******* ${v} *******" ; ${v} -m pip install --upgrade pip setuptools wheel; done \
59
63
&& for v in ${PY_PATHS}; do echo "******* ${v} *******" ; ${v} -m pip install --upgrade tox tox-pyenv ipython pylint pytest mock nose flake8 flake8-docstrings autopep8; done \
60
64
&& for v in ${PY_PATHS}; do ${v} -m pip install -r /tmp/requirements.txt; done
61
65
62
- USER root
63
66
64
- RUN echo "Installing python modules" \
65
- && PY_PATHS=$(cat /home/theia/python3_path && cat /home/theia/python2_path) \
66
- && for v in ${PY_PATHS}; do echo "******* ${v} *******" ; ${v} -m pip install --upgrade pip setuptools wheel; done \
67
- && for v in ${PY_PATHS}; do echo "******* ${v} *******" ; ${v} -m pip install --upgrade tox tox-pyenv ipython pylint pytest mock nose flake8 flake8-docstrings autopep8; done \
68
- && for v in ${PY_PATHS}; do ${v} -m pip install -r /tmp/requirements.txt; done \
69
- && /home/theia/.pyenv/versions/*/bin/python3.8 -m pip install -U black isort \
70
- && ln -f -s /home/theia/.pyenv/versions/*/bin/black /bin/ \
71
- && ln -f -s /home/theia/.pyenv/versions/*/bin/isort /bin/
72
-
73
- USER theia
74
67
WORKDIR /home/theia
75
68
76
69
ENV PYTHONPATH=/home/project:$PYTHONPATH
0 commit comments