Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot deploy app based on scipy-notebook template #24

Open
aagara opened this issue Jul 13, 2020 · 2 comments
Open

Cannot deploy app based on scipy-notebook template #24

aagara opened this issue Jul 13, 2020 · 2 comments

Comments

@aagara
Copy link

aagara commented Jul 13, 2020

When deploying the template, the template fails with the following error

ERROR: don't know how to run your application.
Please set either APP_MODULE, APP_FILE or APP_SCRIPT environment variables, or create a file 'app.py' to launch your application.

The environment is OpenShift 4.3

Here is what I have done.

Successfully created s2i-minimal-notebook and ran it by attaching to a persistent volume. As a next step tried building and deploying the scipy-template.

oc apply -f s2i-scipy-notebook.json

The build configuration is below

{
"kind": "List",
"apiVersion": "v1",
"items": [
{
"kind": "ImageStream",
"apiVersion": "image.openshift.io/v1",
"metadata": {
"name": "s2i-scipy-notebook",
"labels": {
"build": "s2i-scipy-notebook"
}
},
"spec": {
"lookupPolicy": {
"local": true
}
}
},
{
"kind": "BuildConfig",
"apiVersion": "build.openshift.io/v1",
"metadata": {
"name": "s2i-scipy-notebook-py36",
"labels": {
"build": "s2i-scipy-notebook"
}
},
"spec": {
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange"
}
],
"source": {
"type": "Git",
"git": {
"uri": "https://github.com/jupyter-on-openshift/jupyter-notebooks",
"ref": "2.5.1"
},
"contextDir": "scipy-notebook"
},
"strategy": {
"type": "Source",
"sourceStrategy": {
"from": {
"kind": "ImageStreamTag",
"name": "s2i-minimal-notebook:3.6"
}
}
},
"output": {
"to": {
"kind": "ImageStreamTag",
"name": "s2i-scipy-notebook:3.6"
}
},
"resources": {
"limits": {
"memory": "3Gi"
}
}
}
}
]
}

The build log is

Cloning "https://github.com/jupyter-on-openshift/jupyter-notebooks" ...
Commit: 3caf4f2 (Merge branch 'release/2.5.1')
Author: Graham Dumpleton [email protected]
Date: Sat Nov 30 14:24:57 2019 +1100
Caching blobs under "/var/cache/blobs".
Getting image source signatures
Copying blob sha256:84e620d0abe585d05a7bed55144af0bc5efe083aed05eac1e88922034ddf1ed2
Copying blob sha256:bb13d92caffa705f32b8a7f9f661e07ddede310c6ccfa78fb53a49539740e29b
Copying blob sha256:c8106f599d69375cbfc2ef44b11812ddc33938ab1e94860b02c262118f837611
Copying blob sha256:d796d9c455b3bb7953bfc479ad682ad206dc1fed8dda0feff247ce5ae2b7f7ef
Copying blob sha256:455ea8ab06218495bbbcb14b750a0d644897b24f8c5dcf9e8698e27882583412
Copying blob sha256:6a4fa4bc2d06e942c0e92d69614b4ee30c2d409c95f29a3a22ece8087ce164be
Copying config sha256:fe58f0d156ce4570484e00c72fc5382064b09644f9321061c55c55c7dbd3c9e8
Writing manifest to image destination
Storing signatures
Generating dockerfile with builder image image-registry.openshift-image-registry.svc:5000/custom-namespace/s2i-minimal-notebook@sha256:cbd4e8258e4b7bb84e810129e364d1243c549a32cc52f4869edb98d15bb7e6cb
STEP 1: FROM image-registry.openshift-image-registry.svc:5000/custom-namespace/s2i-minimal-notebook@sha256:cbd4e8258e4b7bb84e810129e364d1243c549a32cc52f4869edb98d15bb7e6cb
STEP 2: LABEL "io.openshift.build.commit.author"="Graham Dumpleton [email protected]" "io.openshift.build.commit.date"="Sat Nov 30 14:24:57 2019 +1100" "io.openshift.build.commit.id"="3caf4f2bff7c3ae665234f63034421965aa013aa" "io.openshift.build.commit.ref"="2.5.1" "io.openshift.build.commit.message"="Merge branch 'release/2.5.1'" "io.openshift.build.source-location"="https://github.com/jupyter-on-openshift/jupyter-notebooks" "io.openshift.build.source-context-dir"="scipy-notebook" "io.openshift.build.image"="image-registry.openshift-image-registry.svc:5000/custom-namespace/s2i-minimal-notebook@sha256:cbd4e8258e4b7bb84e810129e364d1243c549a32cc52f4869edb98d15bb7e6cb"
STEP 3: ENV XDG_CACHE_HOME="/opt/app-root/src/.cache" OPENSHIFT_BUILD_NAME="s2i-scipy-notebook-py36-1" OPENSHIFT_BUILD_NAMESPACE="custom-namespace" OPENSHIFT_BUILD_SOURCE="https://github.com/jupyter-on-openshift/jupyter-notebooks" OPENSHIFT_BUILD_REFERENCE="2.5.1" OPENSHIFT_BUILD_COMMIT="3caf4f2bff7c3ae665234f63034421965aa013aa"
STEP 4: USER root
STEP 5: COPY upload/scripts /tmp/scripts
STEP 6: COPY upload/src /tmp/src
STEP 7: RUN chown -R 1001:0 /tmp/scripts /tmp/src
STEP 8: USER 1001
STEP 9: RUN /tmp/scripts/assemble

  • set -eo pipefail

  • /opt/app-root/builder/assemble

  • set -eo pipefail

  • rm -f requirements.txt

  • '[' -s /tmp/build/requirements.txt ']'

  • /usr/libexec/s2i/assemble
    ---> Installing application source ...
    ---> Installing dependencies ...
    Collecting beautifulsoup4==4.8.*
    Downloading beautifulsoup4-4.8.2-py3-none-any.whl (106 kB)
    Collecting bokeh==1.3.*
    Downloading bokeh-1.3.4.tar.gz (17.8 MB)
    Collecting cloudpickle==1.2.*
    Downloading cloudpickle-1.2.2-py2.py3-none-any.whl (25 kB)
    Collecting cython==0.29.*
    Downloading Cython-0.29.21-cp36-cp36m-manylinux1_x86_64.whl (2.0 MB)
    Collecting dill==0.3.*
    Downloading dill-0.3.2.zip (177 kB)
    Collecting h5py==2.9.*
    Downloading h5py-2.9.0-cp36-cp36m-manylinux1_x86_64.whl (2.8 MB)
    Collecting ipywidgets==7.5.*
    Downloading ipywidgets-7.5.1-py2.py3-none-any.whl (121 kB)
    Collecting matplotlib==3.1.*
    Downloading matplotlib-3.1.3-cp36-cp36m-manylinux1_x86_64.whl (13.1 MB)
    Collecting numba==0.45.*
    Downloading numba-0.45.1-cp36-cp36m-manylinux1_x86_64.whl (3.5 MB)
    Collecting numexpr==2.6.*
    Downloading numexpr-2.6.9-cp36-cp36m-manylinux1_x86_64.whl (163 kB)
    Collecting pandas==0.25.*
    Downloading pandas-0.25.3-cp36-cp36m-manylinux1_x86_64.whl (10.4 MB)
    Collecting patsy==0.5.*
    Downloading patsy-0.5.1-py2.py3-none-any.whl (231 kB)
    Collecting protobuf==3.9.*
    Downloading protobuf-3.9.2-cp36-cp36m-manylinux1_x86_64.whl (1.2 MB)
    Collecting scikit-image==0.15.*
    Downloading scikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl (26.3 MB)
    Collecting scikit-learn==0.21.*
    Downloading scikit_learn-0.21.3-cp36-cp36m-manylinux1_x86_64.whl (6.7 MB)
    Collecting scipy==1.3.*
    Downloading scipy-1.3.3-cp36-cp36m-manylinux1_x86_64.whl (25.2 MB)
    Collecting seaborn==0.9.*
    Downloading seaborn-0.9.1-py2.py3-none-any.whl (216 kB)
    Requirement already satisfied: sqlalchemy==1.3.* in /opt/app-root/lib/python3.6/site-packages (from -r requirements.txt (line 21)) (1.3.18)
    Collecting statsmodels==0.10.*
    Downloading statsmodels-0.10.2-cp36-cp36m-manylinux1_x86_64.whl (8.1 MB)
    Collecting sympy==1.4.*
    Downloading sympy-1.4-py2.py3-none-any.whl (5.3 MB)
    Collecting vincent==0.4.*
    Downloading vincent-0.4.4.tar.gz (29 kB)
    Collecting xlrd==1.2.*
    Downloading xlrd-1.2.0-py2.py3-none-any.whl (103 kB)
    Collecting soupsieve>=1.2
    Downloading soupsieve-2.0.1-py3-none-any.whl (32 kB)
    Requirement already satisfied: six>=1.5.2 in /opt/app-root/lib/python3.6/site-packages (from bokeh==1.3.->-r requirements.txt (line 4)) (1.15.0)
    Requirement already satisfied: PyYAML>=3.10 in /opt/app-root/lib/python3.6/site-packages (from bokeh==1.3.
    ->-r requirements.txt (line 4)) (5.3.1)
    Requirement already satisfied: python-dateutil>=2.1 in /opt/app-root/lib/python3.6/site-packages (from bokeh==1.3.->-r requirements.txt (line 4)) (2.8.1)
    Requirement already satisfied: Jinja2>=2.7 in /opt/app-root/lib/python3.6/site-packages (from bokeh==1.3.
    ->-r requirements.txt (line 4)) (2.11.2)
    Collecting numpy>=1.7.1
    Downloading numpy-1.19.0-cp36-cp36m-manylinux2010_x86_64.whl (14.6 MB)
    Collecting pillow>=4.0
    Downloading Pillow-7.2.0-cp36-cp36m-manylinux1_x86_64.whl (2.2 MB)
    Requirement already satisfied: packaging>=16.8 in /opt/app-root/lib/python3.6/site-packages (from bokeh==1.3.->-r requirements.txt (line 4)) (20.4)
    Requirement already satisfied: tornado>=4.3 in /opt/app-root/lib/python3.6/site-packages (from bokeh==1.3.
    ->-r requirements.txt (line 4)) (6.0.3)
    Requirement already satisfied: traitlets>=4.3.1 in /opt/app-root/lib/python3.6/site-packages (from ipywidgets==7.5.->-r requirements.txt (line 10)) (4.3.3)
    Requirement already satisfied: ipykernel>=4.5.1 in /opt/app-root/lib/python3.6/site-packages (from ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (5.3.2)
    Requirement already satisfied: ipython>=4.0.0; python_version >= "3.3" in /opt/app-root/lib/python3.6/site-packages (from ipywidgets==7.5.->-r requirements.txt (line 10)) (7.16.1)
    Collecting widgetsnbextension~=3.5.0
    Downloading widgetsnbextension-3.5.1-py2.py3-none-any.whl (2.2 MB)
    Requirement already satisfied: nbformat>=4.2.0 in /opt/app-root/lib/python3.6/site-packages (from ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (5.0.7)
    Collecting cycler>=0.10
    Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
    Collecting kiwisolver>=1.0.1
    Downloading kiwisolver-1.2.0-cp36-cp36m-manylinux1_x86_64.whl (88 kB)
    Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/app-root/lib/python3.6/site-packages (from matplotlib==3.1.->-r requirements.txt (line 11)) (2.4.7)
    Collecting llvmlite>=0.29.0dev0
    Downloading llvmlite-0.33.0-cp36-cp36m-manylinux1_x86_64.whl (18.3 MB)
    Collecting pytz>=2017.2
    Downloading pytz-2020.1-py2.py3-none-any.whl (510 kB)
    Requirement already satisfied: setuptools in /opt/app-root/lib/python3.6/site-packages (from protobuf==3.9.
    ->-r requirements.txt (line 16)) (49.1.0)
    Collecting imageio>=2.0.1
    Downloading imageio-2.9.0-py3-none-any.whl (3.3 MB)
    Collecting networkx>=2.0
    Downloading networkx-2.4-py3-none-any.whl (1.6 MB)
    Collecting PyWavelets>=0.4.0
    Downloading PyWavelets-1.1.1-cp36-cp36m-manylinux1_x86_64.whl (4.4 MB)
    Collecting joblib>=0.11
    Downloading joblib-0.16.0-py3-none-any.whl (300 kB)
    Collecting mpmath>=0.19
    Downloading mpmath-1.1.0.tar.gz (512 kB)
    Requirement already satisfied: MarkupSafe>=0.23 in /opt/app-root/lib/python3.6/site-packages (from Jinja2>=2.7->bokeh==1.3.->-r requirements.txt (line 4)) (1.1.1)
    Requirement already satisfied: decorator in /opt/app-root/lib/python3.6/site-packages (from traitlets>=4.3.1->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (4.4.2)
    Requirement already satisfied: ipython-genutils in /opt/app-root/lib/python3.6/site-packages (from traitlets>=4.3.1->ipywidgets==7.5.->-r requirements.txt (line 10)) (0.2.0)
    Requirement already satisfied: jupyter-client in /opt/app-root/lib/python3.6/site-packages (from ipykernel>=4.5.1->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (6.1.5)
    Requirement already satisfied: pygments in /opt/app-root/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.->-r requirements.txt (line 10)) (2.6.1)
    Requirement already satisfied: pexpect; sys_platform != "win32" in /opt/app-root/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (4.8.0)
    Requirement already satisfied: backcall in /opt/app-root/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.->-r requirements.txt (line 10)) (0.2.0)
    Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/app-root/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (3.0.5)
    Requirement already satisfied: jedi>=0.10 in /opt/app-root/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.->-r requirements.txt (line 10)) (0.17.1)
    Requirement already satisfied: pickleshare in /opt/app-root/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (0.7.5)
    Requirement already satisfied: notebook>=4.4.1 in /opt/app-root/lib/python3.6/site-packages (from widgetsnbextension~=3.5.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (6.0.2)
    Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/app-root/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (3.2.0)
    Requirement already satisfied: jupyter-core in /opt/app-root/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (4.6.3)
    Requirement already satisfied: pyzmq>=13 in /opt/app-root/lib/python3.6/site-packages (from jupyter-client->ipykernel>=4.5.1->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (19.0.1)
    Requirement already satisfied: ptyprocess>=0.5 in /opt/app-root/lib/python3.6/site-packages (from pexpect; sys_platform != "win32"->ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.->-r requirements.txt (line 10)) (0.6.0)
    Requirement already satisfied: wcwidth in /opt/app-root/lib/python3.6/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (0.2.5)
    Requirement already satisfied: parso<0.8.0,>=0.7.0 in /opt/app-root/lib/python3.6/site-packages (from jedi>=0.10->ipython>=4.0.0; python_version >= "3.3"->ipywidgets==7.5.->-r requirements.txt (line 10)) (0.7.0)
    Requirement already satisfied: prometheus-client in /opt/app-root/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (0.8.0)
    Requirement already satisfied: nbconvert in /opt/app-root/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (5.6.1)
    Requirement already satisfied: Send2Trash in /opt/app-root/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (1.5.0)
    Requirement already satisfied: terminado>=0.8.1 in /opt/app-root/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (0.8.3)
    Requirement already satisfied: pyrsistent>=0.14.0 in /opt/app-root/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (0.16.0)
    Requirement already satisfied: attrs>=17.4.0 in /opt/app-root/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (19.3.0)
    Requirement already satisfied: importlib-metadata; python_version < "3.8" in /opt/app-root/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (1.7.0)
    Requirement already satisfied: mistune<2,>=0.8.1 in /opt/app-root/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (0.8.4)
    Requirement already satisfied: bleach in /opt/app-root/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (3.1.5)
    Requirement already satisfied: pandocfilters>=1.4.1 in /opt/app-root/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (1.4.2)
    Requirement already satisfied: entrypoints>=0.2.2 in /opt/app-root/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (0.3)
    Requirement already satisfied: testpath in /opt/app-root/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (0.4.4)
    Requirement already satisfied: defusedxml in /opt/app-root/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (0.6.0)
    Requirement already satisfied: zipp>=0.5 in /opt/app-root/lib/python3.6/site-packages (from importlib-metadata; python_version < "3.8"->jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets==7.5.->-r requirements.txt (line 10)) (3.1.0)
    Requirement already satisfied: webencodings in /opt/app-root/lib/python3.6/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets==7.5.
    ->-r requirements.txt (line 10)) (0.5.1)
    Building wheels for collected packages: bokeh, dill, vincent, mpmath
    Building wheel for bokeh (setup.py): started
    Building wheel for bokeh (setup.py): finished with status 'done'
    Created wheel for bokeh: filename=bokeh-1.3.4-py3-none-any.whl size=8546146 sha256=d34193ae6dc8694589c9fc5ff69aa562f88803ae4473bf9d3a6995da06d94a4f
    Stored in directory: /tmp/pip-ephem-wheel-cache-zxhz35rt/wheels/f0/c0/75/05fa5621d25ac27b3e4382188124924e7e5a113e0597eda10e
    Building wheel for dill (setup.py): started
    Building wheel for dill (setup.py): finished with status 'done'
    Created wheel for dill: filename=dill-0.3.2-py3-none-any.whl size=78912 sha256=442fc5e7ff2ceb10bfa0985e4022611f684e86e38403de02c0f32d9dc4d8a6c0
    Stored in directory: /tmp/pip-ephem-wheel-cache-zxhz35rt/wheels/02/49/cf/660924cd9bc5fcddc3a0246fe39800c83028d3ccea244de352
    Building wheel for vincent (setup.py): started
    Building wheel for vincent (setup.py): finished with status 'done'
    Created wheel for vincent: filename=vincent-0.4.4-py3-none-any.whl size=35167 sha256=d98054b95bbeb83ad35652043ef28a09b526242f65b72fa76a72c2fa5668551a
    Stored in directory: /tmp/pip-ephem-wheel-cache-zxhz35rt/wheels/ed/29/88/7cef7b5ec388edf25dc36e5eafb08d7f2ef0b4da19b4b4e14a
    Building wheel for mpmath (setup.py): started
    Building wheel for mpmath (setup.py): finished with status 'done'
    Created wheel for mpmath: filename=mpmath-1.1.0-py3-none-any.whl size=532239 sha256=8b53ccb19ff59517bea003f2c3caab77ade088d5a5d48956de12df0a6d562aa5
    Stored in directory: /tmp/pip-ephem-wheel-cache-zxhz35rt/wheels/e8/38/69/aa17553ad31f09ff5fa44c8a1a6c5b47e7c9261e9c7c16b9fb
    Successfully built bokeh dill vincent mpmath
    Installing collected packages: soupsieve, beautifulsoup4, numpy, pillow, bokeh, cloudpickle, cython, dill, h5py, widgetsnbextension, ipywidgets, cycler, kiwisolver, matplotlib, llvmlite, numba, numexpr, pytz, pandas, patsy, protobuf, scipy, imageio, networkx, PyWavelets, scikit-image, joblib, scikit-learn, seaborn, statsmodels, mpmath, sympy, vincent, xlrd
    Attempting uninstall: cloudpickle
    Found existing installation: cloudpickle 1.5.0
    Uninstalling cloudpickle-1.5.0:
    Successfully uninstalled cloudpickle-1.5.0
    Successfully installed PyWavelets-1.1.1 beautifulsoup4-4.8.2 bokeh-1.3.4 cloudpickle-1.2.2 cycler-0.10.0 cython-0.29.21 dill-0.3.2 h5py-2.9.0 imageio-2.9.0 ipywidgets-7.5.1 joblib-0.16.0 kiwisolver-1.2.0 llvmlite-0.33.0 matplotlib-3.1.3 mpmath-1.1.0 networkx-2.4 numba-0.45.1 numexpr-2.6.9 numpy-1.19.0 pandas-0.25.3 patsy-0.5.1 pillow-7.2.0 protobuf-3.9.2 pytz-2020.1 scikit-image-0.15.0 scikit-learn-0.21.3 scipy-1.3.3 seaborn-0.9.1 soupsieve-2.0.1 statsmodels-0.10.2 sympy-1.4 vincent-0.4.4 widgetsnbextension-3.5.1 xlrd-1.2.0

  • '[' x '!=' x ']'

  • jupyter nbextension enable --py widgetsnbextension --sys-prefix
    Enabling notebook extension jupyter-js-widgets/extension...
    - Validating: �[32mOK�[0m

  • jupyter labextension install '@jupyter-widgets/jupyterlab-manager@^1.0.1' --no-build
    -�\�|�/�-�\�|�/�-�\�|�+ jupyter labextension install [email protected] --no-build
    -�\�|�/�-�\�|�/�-�\�|�+ jupyter lab build
    [LabBuildApp] JupyterLab 1.2.3
    [LabBuildApp] Building in /opt/app-root/share/jupyter/lab
    [LabBuildApp] Building jupyterlab assets (build:prod:minimize)
    -�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�-�\�|�/�-�\�|�/�-�\�|�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�/�-�\�|�+ cd /tmp

  • git clone https://github.com/PAIR-code/facets.git
    Cloning into 'facets'...

  • cd facets

  • jupyter nbextension install facets-dist/ --sys-prefix
    Making directory: /opt/app-root/share/jupyter/nbextensions/facets-dist/
    Copying: /tmp/facets/facets-dist/facets-jupyter.html -> /opt/app-root/share/jupyter/nbextensions/facets-dist/facets-jupyter.html

    To initialize this nbextension in the browser every time the notebook (or other app) loads:

        jupyter nbextension enable <the entry point> --sys-prefix
    
  • cd /opt/app-root/src

  • rm -rf /tmp/facets

  • MPLBACKEND=Agg

  • python -c 'import matplotlib.pyplot'

  • fix-permissions /opt/app-root
    STEP 10: CMD /usr/libexec/s2i/run
    STEP 11: COMMIT temp.builder.openshift.io/custom-namespace/s2i-scipy-notebook-py36-1:31b06186
    Getting image source signatures
    Copying blob sha256:35817540a17b5b90cb4426078d53813b16e70c75e1cce3db116d2fbbca7fbf10
    Copying blob sha256:c7fbe90ae90e9c6452e5d809f069907907e6f32532565104921f600fb956306c
    Copying blob sha256:74d760a83a4b8bcb3d01e7726e06c11469f0bb2ce4645474cb91a607c27bf482
    Copying blob sha256:a81014d91c9e1e50df402fa41d22d9965a3690e0ca10951fa2937c99d6e76d52
    Copying blob sha256:be62003aa03127bf920a41b2527a002bd72b0f5ad8a43c54fcfb32c0cf8962fc
    Copying blob sha256:0511d18c91c1a7b854da40cc387a31eea50b381d0a1e907ae66b5098d2a36912
    Copying blob sha256:56f9c969c0265bdb920b12db283a1be54e84445d8f4abb71627894744daff78a
    Copying config sha256:16e589a7d0c21d90f7ca665f1f8fbce02c945b1c867c67bee9a948eec453de9d
    Writing manifest to image destination
    Storing signatures
    16e589a7d0c21d90f7ca665f1f8fbce02c945b1c867c67bee9a948eec453de9d
    16e589a7d0c21d90f7ca665f1f8fbce02c945b1c867c67bee9a948eec453de9d

Pushing image image-registry.openshift-image-registry.svc:5000/custom-namespace/s2i-scipy-notebook:3.6 ...
Getting image source signatures
Copying blob sha256:84e620d0abe585d05a7bed55144af0bc5efe083aed05eac1e88922034ddf1ed2
Copying blob sha256:6a4fa4bc2d06e942c0e92d69614b4ee30c2d409c95f29a3a22ece8087ce164be
Copying blob sha256:c8106f599d69375cbfc2ef44b11812ddc33938ab1e94860b02c262118f837611
Copying blob sha256:bb13d92caffa705f32b8a7f9f661e07ddede310c6ccfa78fb53a49539740e29b
Copying blob sha256:455ea8ab06218495bbbcb14b750a0d644897b24f8c5dcf9e8698e27882583412
Copying blob sha256:d796d9c455b3bb7953bfc479ad682ad206dc1fed8dda0feff247ce5ae2b7f7ef
Copying blob sha256:56f9c969c0265bdb920b12db283a1be54e84445d8f4abb71627894744daff78a
Copying config sha256:16e589a7d0c21d90f7ca665f1f8fbce02c945b1c867c67bee9a948eec453de9d
Writing manifest to image destination
Storing signatures
Successfully pushed image-registry.openshift-image-registry.svc:5000/custom-namespace/s2i-scipy-notebook@sha256:3d391f19e46c5943a74444bda0dd42dd2efa0dc5a6890c79aab0fc4e84d02db2
Push successful

==================================================================================

oc process -f openshift-jupyter-dc-template.yaml -p APPLICATION_NAME=scipy-notebook -p NOTEBOOK_IMAGE='s2i-scipy-notebook:3.6' -p SUPPLEMENTAL_GROUPS=200300 -p NOTEBOOK_PASSWORD=secret -p VOLUME_SIZE=5Gi | oc create -f -

The set-up volume takes a while to run. I had to configure timeoutSeconds more than 600 seconds for it to complete. Not sure the log of set-up volume is required.

Any help to resolve this issue is greatly appreciated.

Thanks
-Arun

@GrahamDumpleton
Copy link
Contributor

What is the definition of the container for the deployment in:

  • openshift-jupyter-dc-template.yaml

Looks to me like you are overriding the start command for the container and not using the default the image sets up.

@aagara
Copy link
Author

aagara commented Jul 14, 2020

I used the notebook-workspace.json as the base template and added one more parameter. The start command is only for the initialization container. Below is the entire yaml. Please let me know if something I have modified is incorrect.


kind: Template
apiVersion: template.openshift.io/v1
metadata:
name: notebook-workspace
annotations:
openshift.io/display-name: Jupyter Notebook Workspace
description: Template for deploying Jupyter Notebook images with persistent storage
and webdav filesystem access.
iconClass: icon-python
tags: python,jupyter
parameters:

  • name: APPLICATION_NAME
    value: custom-notebook
    required: true
  • name: NOTEBOOK_IMAGE
    value: s2i-minimal-notebook:3.6
    required: true
  • name: NOTEBOOK_PASSWORD
    value: ''
    required: true
  • name: NOTEBOOK_INTERFACE
    value: classic
  • name: NOTEBOOK_MEMORY
    value: 512Mi
    required: true
  • name: VOLUME_SIZE
    value: 1Gi
    required: true
  • name: SUPPLEMENTAL_GROUPS
    required: true
    objects:
  • kind: DeploymentConfig
    apiVersion: apps.openshift.io/v1
    metadata:
    name: "${APPLICATION_NAME}"
    labels:
    app: "${APPLICATION_NAME}"
    spec:
    strategy:
    type: Recreate
    triggers:
    • type: ConfigChange
    • type: ImageChange
      imageChangeParams:
      automatic: true
      containerNames:
      • setup-volume
      • notebook
        from:
        kind: ImageStreamTag
        name: "${NOTEBOOK_IMAGE}"
        replicas: 1
        selector:
        app: "${APPLICATION_NAME}"
        deploymentconfig: "${APPLICATION_NAME}"
        template:
        metadata:
        labels:
        app: "${APPLICATION_NAME}"
        deploymentconfig: "${APPLICATION_NAME}"
        spec:
        securityContext:
        supplementalGroups:
        • ${{SUPPLEMENTAL_GROUPS}}
          volumes:
      • name: data
        persistentVolumeClaim:
        claimName: "${APPLICATION_NAME}-data"
        initContainers:
      • name: setup-volume
        image: "${NOTEBOOK_IMAGE}"
        command: ['sh', '-c', "setup-volume.sh /opt/app-root /mnt/app-root"]
        resources:
        limits:
        memory: 256Mi
        volumeMounts:
        • name: data
          mountPath: "/mnt"
          containers:
      • name: notebook
        image: "${NOTEBOOK_IMAGE}"
        ports:
        • containerPort: 8080
          protocol: TCP
        • containerPort: 8081
          protocol: TCP
          resources:
          limits:
          memory: "${NOTEBOOK_MEMORY}"
          volumeMounts:
        • name: data
          mountPath: "/opt/app-root"
          subPath: app-root
          env:
        • name: JUPYTER_NOTEBOOK_PASSWORD
          value: "${NOTEBOOK_PASSWORD}"
        • name: JUPYTER_NOTEBOOK_INTERFACE
          value: "${NOTEBOOK_INTERFACE}"
        • name: JUPYTER_ENABLE_WEBDAV
          value: 'true'
          automountServiceAccountToken: false
  • kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
    name: "${APPLICATION_NAME}-data"
    labels:
    app: "${APPLICATION_NAME}"
    spec:
    accessModes:
    • ReadWriteOnce
      resources:
      requests:
      storage: "${VOLUME_SIZE}"
  • kind: Service
    apiVersion: v1
    metadata:
    name: "${APPLICATION_NAME}"
    labels:
    app: "${APPLICATION_NAME}"
    spec:
    ports:
    • name: 8080-tcp
      protocol: TCP
      port: 8080
      targetPort: 8080
    • name: 8081-tcp
      protocol: TCP
      port: 8081
      targetPort: 8081
      selector:
      app: "${APPLICATION_NAME}"
      deploymentconfig: "${APPLICATION_NAME}"
  • kind: Route
    apiVersion: route.openshift.io/v1
    metadata:
    name: "${APPLICATION_NAME}"
    labels:
    app: "${APPLICATION_NAME}"
    spec:
    host: ''
    to:
    kind: Service
    name: "${APPLICATION_NAME}"
    weight: 100
    port:
    targetPort: 8080-tcp
    tls:
    termination: edge
    insecureEdgeTerminationPolicy: Redirect

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants