move dockerfile appendix into LegacyBinderDockerBuildPack.dockerfile_appendix

and make it overrideable
pull/16/head
Min RK 2017-05-25 15:37:33 -07:00
rodzic 766eee29e6
commit 82ccb38e3a
1 zmienionych plików z 20 dodań i 17 usunięć

Wyświetl plik

@ -1,6 +1,7 @@
import os
import sys
import subprocess
from textwrap import dedent
import docker
from docker.utils import kwargs_from_env
@ -50,26 +51,27 @@ class DockerBuildPack(BuildPack):
else:
sys.stdout.write(progress['stream'])
_legacy_binder_docker_appendix = """
USER root
COPY . /home/main/notebooks
RUN chown -R main:main /home/main/notebooks
USER main
WORKDIR /home/main/notebooks
ENV PATH /home/main/anaconda2/envs/python3/bin:$PATH
RUN conda install -n python3 notebook==5.0.0 ipykernel==4.6.0 && \
pip install jupyterhub==0.7.2 && \
conda remove -n python3 nb_conda_kernels && \
conda install -n root ipykernel==4.6.0 && \
/home/main/anaconda2/envs/python3/bin/ipython kernel install --sys-prefix && \
/home/main/anaconda2/bin/ipython kernel install --prefix=/home/main/anaconda2/envs/python3
ENV JUPYTER_PATH /home/main/anaconda2/share/jupyter:$JUPYTER_PATH
CMD jupyter notebook --ip 0.0.0.0
"""
class LegacyBinderDockerBuildPack(DockerBuildPack):
name = Unicode('Legacy Binder Dockerfile')
dockerfile_appendix = Unicode(dedent(r"""
USER root
COPY . /home/main/notebooks
RUN chown -R main:main /home/main/notebooks
USER main
WORKDIR /home/main/notebooks
ENV PATH /home/main/anaconda2/envs/python3/bin:$PATH
RUN conda install -n python3 notebook==5.0.0 ipykernel==4.6.0 && \
pip install jupyterhub==0.7.2 && \
conda remove -n python3 nb_conda_kernels && \
conda install -n root ipykernel==4.6.0 && \
/home/main/anaconda2/envs/python3/bin/ipython kernel install --sys-prefix && \
/home/main/anaconda2/bin/ipython kernel install --prefix=/home/main/anaconda2/envs/python3
ENV JUPYTER_PATH /home/main/anaconda2/share/jupyter:$JUPYTER_PATH
CMD jupyter notebook --ip 0.0.0.0
"""), config=True)
def detect(self, workdir):
dockerfile = os.path.join(workdir, 'Dockerfile')
if not os.path.exists(dockerfile):
@ -86,8 +88,9 @@ class LegacyBinderDockerBuildPack(DockerBuildPack):
return False
def amend_dockerfile(self, dockerfile):
print(self.dockerfile_appendix)
with open(dockerfile, 'a') as f:
f.write(_legacy_binder_docker_appendix)
f.write(self.dockerfile_appendix)
class S2IBuildPack(BuildPack):