diff --git a/Dockerfile b/Dockerfile index 1ce0aac2..7ef250af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:20.04 +FROM nvidia/cuda:12.4.0-devel-ubuntu20.04 USER root @@ -287,17 +287,17 @@ RUN wget --no-verbose https://repo.anaconda.com/miniconda/Miniconda3-py38_${COND # Deactivate pip interoperability (currently default), otherwise conda tries to uninstall pip packages $CONDA_ROOT/bin/conda config --system --set pip_interop_enabled false && \ # Update conda - $CONDA_ROOT/bin/conda update -y -n base -c defaults conda && \ + #$CONDA_ROOT/bin/conda update -y -n base -c defaults conda && \ $CONDA_ROOT/bin/conda update -y setuptools && \ - $CONDA_ROOT/bin/conda install -y conda-build && \ + $CONDA_ROOT/bin/conda install -y conda-build==3.21.4 && \ # Update selected packages - install python 3.8.x - $CONDA_ROOT/bin/conda install -y --update-all python=$PYTHON_VERSION && \ + $CONDA_ROOT/bin/conda install -y python=$PYTHON_VERSION && \ # Link Conda ln -s $CONDA_ROOT/bin/python /usr/local/bin/python && \ ln -s $CONDA_ROOT/bin/conda /usr/bin/conda && \ # Update - $CONDA_ROOT/bin/conda install -y pip && \ - $CONDA_ROOT/bin/pip install --upgrade pip && \ + $CONDA_ROOT/bin/conda install -y pip==21.3.1 && \ + $CONDA_ROOT/bin/pip install --upgrade pip==21.3.1 && \ chmod -R a+rwx /usr/local/bin/ && \ # Cleanup - Remove all here since conda is not in path as of now # find /opt/conda/ -follow -type f -name '*.a' -delete && \ @@ -318,7 +318,7 @@ ENV LD_LIBRARY_PATH=$CONDA_ROOT/lib RUN git clone https://github.com/pyenv/pyenv.git $RESOURCES_PATH/.pyenv && \ # Install pyenv plugins based on pyenv installer git clone https://github.com/pyenv/pyenv-virtualenv.git $RESOURCES_PATH/.pyenv/plugins/pyenv-virtualenv && \ - git clone git://github.com/pyenv/pyenv-doctor.git $RESOURCES_PATH/.pyenv/plugins/pyenv-doctor && \ + git clone https://github.com/pyenv/pyenv-doctor.git $RESOURCES_PATH/.pyenv/plugins/pyenv-doctor && \ git clone https://github.com/pyenv/pyenv-update.git $RESOURCES_PATH/.pyenv/plugins/pyenv-update && \ git clone https://github.com/pyenv/pyenv-which-ext.git $RESOURCES_PATH/.pyenv/plugins/pyenv-which-ext && \ apt-get update && \ @@ -357,7 +357,7 @@ RUN \ ln -s /usr/bin/node /opt/node/bin/node && \ ln -s /usr/bin/npm /opt/node/bin/npm && \ # Update npm - /usr/bin/npm install -g npm && \ + /usr/bin/npm install -g npm@7.19.1 && \ # Install Yarn /usr/bin/npm install -g yarn && \ # Install typescript @@ -367,7 +367,7 @@ RUN \ # Install node-gyp /usr/bin/npm install -g node-gyp && \ # Update all packages to latest version - /usr/bin/npm update -g && \ + # /usr/bin/npm update -g && \ # Cleanup clean-layer.sh @@ -561,17 +561,17 @@ RUN \ ln -s -f $CONDA_ROOT/bin/python /usr/bin/python && \ apt-get update && \ # upgrade pip - pip install --upgrade pip && \ + pip install --upgrade pip==21.3.1 && \ # If minimal flavor - install if [ "$WORKSPACE_FLAVOR" = "minimal" ]; then \ # Install nomkl - mkl needs lots of space - conda install -y --update-all 'python='$PYTHON_VERSION nomkl ; \ + conda install -y 'python='$PYTHON_VERSION nomkl ; \ else \ # Install mkl for faster computations - conda install -y --update-all 'python='$PYTHON_VERSION mkl-service mkl ; \ + conda install -y 'python='$PYTHON_VERSION mkl-service mkl ; \ fi && \ # Install some basics - required to run container - conda install -y --update-all \ + conda install -y \ 'python='$PYTHON_VERSION \ 'ipython=7.24.*' \ 'notebook=6.4.*' \ @@ -583,8 +583,8 @@ RUN \ # TODO install scipy, numpy, sklearn, and numexpr via conda for mkl optimizaed versions: https://docs.anaconda.com/mkl-optimizations/ 'scipy==1.7.*' \ 'numpy==1.19.*' \ - scikit-learn \ - numexpr && \ + 'scikit-learn==0.24.2' \ + 'numexpr==2.7.3' && \ # installed via apt-get and pip: protobuf \ # installed via apt-get: zlib && \ # Switch of channel priority, makes some trouble @@ -679,6 +679,8 @@ COPY resources/jupyter/jupyter_notebook_config.json /etc/jupyter/ # install jupyter extensions RUN \ + # Install jinja2==3.0.3 and MarkupSafe==2.0.1 + pip install --no-cache-dir --upgrade jinja2==3.0.1 MarkupSafe==2.0.1 && \ # Create empty notebook configuration mkdir -p $HOME/.jupyter/nbconfig/ && \ printf "{\"load_extensions\": {}}" > $HOME/.jupyter/nbconfig/notebook.json && \ @@ -1033,8 +1035,8 @@ RUN \ echo "[Desktop Entry]\nVersion=1.0\nType=Link\nName=Glances\nComment=Hardware Monitoring\nCategories=System;Utility;\nIcon=/resources/icons/glances-icon.png\nURL=http://localhost:8092/tools/glances" > /usr/share/applications/glances.desktop && \ chmod +x /usr/share/applications/glances.desktop && \ # Remove mail and logout desktop icons - rm /usr/share/applications/xfce4-mail-reader.desktop && \ - rm /usr/share/applications/xfce4-session-logout.desktop + rm -f /usr/share/applications/xfce4-mail-reader.desktop && \ + rm -f /usr/share/applications/xfce4-session-logout.desktop # Copy resources into workspace COPY resources/tools $RESOURCES_PATH/tools diff --git a/resources/branding/bg_ml_foundation.png b/resources/branding/bg_ml_foundation.png index e16405d8..a04cb348 100644 Binary files a/resources/branding/bg_ml_foundation.png and b/resources/branding/bg_ml_foundation.png differ diff --git a/resources/branding/favicon.ico b/resources/branding/favicon.ico index 0aa02221..183bf5a7 100644 Binary files a/resources/branding/favicon.ico and b/resources/branding/favicon.ico differ diff --git a/resources/branding/logo.png b/resources/branding/logo.png index 3fb0fa7e..dd36c302 100644 Binary files a/resources/branding/logo.png and b/resources/branding/logo.png differ diff --git a/resources/branding/ml-workspace-logo.svg b/resources/branding/ml-workspace-logo.svg index 58b258b9..b93fda43 100644 --- a/resources/branding/ml-workspace-logo.svg +++ b/resources/branding/ml-workspace-logo.svg @@ -1,184 +1,72 @@ - - - + + + + + + + + + + + + diff --git a/resources/libraries/requirements-minimal.txt b/resources/libraries/requirements-minimal.txt index c6df7c60..0561b41c 100644 --- a/resources/libraries/requirements-minimal.txt +++ b/resources/libraries/requirements-minimal.txt @@ -27,7 +27,6 @@ httpie==2.4.0 # HTTPie - a CLI, cURL-like tool for humans. cloudpickle==1.6.0 # Extended pickling support for Python objects msgpack==1.0.2 # MessagePack (de)serializer. msgpack-numpy==0.4.7.1 # Numpy data serialization using msgpack -cysignals==1.10.3 # Interrupt and signal handling for Cython h5py==3.3.0 # Read and write HDF5 files from Python seaborn==0.11.1 # Python visualization library based on matplotlib - Basic SQLAlchemy==1.4.19 # Database Abstraction Library diff --git a/resources/libraries/requirements-minimal.txt:Zone.Identifier b/resources/libraries/requirements-minimal.txt:Zone.Identifier new file mode 100644 index 00000000..e69de29b diff --git a/resources/supervisor/programs/vscode.conf b/resources/supervisor/programs/vscode.conf index 66b8460f..afa6f018 100644 --- a/resources/supervisor/programs/vscode.conf +++ b/resources/supervisor/programs/vscode.conf @@ -1,5 +1,5 @@ [program:vscode] -command=/usr/local/bin/code-server --port=8054 --auth none --disable-update-check --disable-telemetry --user-data-dir=%(ENV_HOME)s/.config/Code/ --extensions-dir=%(ENV_HOME)s/.vscode/extensions/ --auth=none %(ENV_WORKSPACE_HOME)s/ +command=/usr/bin/code-server --port=8054 --auth none --disable-update-check --disable-telemetry --user-data-dir=%(ENV_HOME)s/.config/Code/ --extensions-dir=%(ENV_HOME)s/.vscode/extensions/ --auth=none %(ENV_WORKSPACE_HOME)s/ autostart=true autorestart=true redirect_stderr=true diff --git a/resources/supervisor/programs/vscode.conf:Zone.Identifier b/resources/supervisor/programs/vscode.conf:Zone.Identifier new file mode 100644 index 00000000..e69de29b diff --git a/resources/tools/vs-code-server.sh b/resources/tools/vs-code-server.sh index 066caf09..0e3e0776 100644 --- a/resources/tools/vs-code-server.sh +++ b/resources/tools/vs-code-server.sh @@ -14,19 +14,9 @@ for arg in "$@"; do esac done -if [ ! -f "/usr/local/bin/code-server" ]; then +if [ ! -f "/usr/bin/code-server" ]; then echo "Installing VS Code Server. Please wait..." - cd ${RESOURCES_PATH} - VS_CODE_VERSION=3.10.2 - # Use yarn install since it is smaller - yarn --production --frozen-lockfile global add code-server@"$VS_CODE_VERSION" - yarn cache clean - ln -s /usr/local/bin/code-server /usr/bin/code-server - #wget -q https://github.com/cdr/code-server/releases/download/v$VS_CODE_VERSION/code-server_${VS_CODE_VERSION}_amd64.deb -O ./code-server.deb - #apt-get update - #apt-get install -y ./code-server.deb - #rm ./code-server.deb - #ln -s /usr/bin/code-server /usr/local/bin/code-server + curl -fsSL https://code-server.dev/install.sh | sh else echo "VS Code Server is already installed" fi @@ -40,6 +30,6 @@ if [ $INSTALL_ONLY = 0 ] ; then echo "Starting VS Code Server on port "$PORT # Create tool entry for tooling plugin echo '{"id": "vscode-link", "name": "VS Code", "url_path": "/tools/'$PORT'/", "description": "Visual Studio Code webapp"}' > $HOME/.workspace/tools/vscode.json - /usr/local/bin/code-server --port=$PORT --disable-telemetry --user-data-dir=$HOME/.config/Code/ --extensions-dir=$HOME/.vscode/extensions/ --disable-update-check --auth=none $WORKSPACE_HOME/ + /usr/bin/code-server --port=$PORT --disable-telemetry --user-data-dir=$HOME/.config/Code/ --extensions-dir=$HOME/.vscode/extensions/ --disable-update-check --auth=none $WORKSPACE_HOME/ sleep 15 fi diff --git a/resources/tools/vs-code-server.sh:Zone.Identifier b/resources/tools/vs-code-server.sh:Zone.Identifier new file mode 100644 index 00000000..e69de29b