FROM jupyter/base-notebook:latest # Install .NET CLI dependencies ARG NB_USER=jovyan ARG NB_UID=1000 ENV USER ${NB_USER} ENV NB_UID ${NB_UID} ENV HOME /home/${NB_USER} WORKDIR ${HOME} USER root RUN apt-get update RUN apt-get install -y curl ENV \ # Enable detection of running in a container DOTNET_RUNNING_IN_CONTAINER=true \ # Enable correct mode for dotnet watch (only mode supported in a container) DOTNET_USE_POLLING_FILE_WATCHER=true \ # Skip extraction of XML docs - generally not useful within an image/container - helps performance NUGET_XMLDOC_MODE=skip \ # Opt out of telemetry until after we install jupyter when building the image, this prevents caching of machine id DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT=true # Install .NET CLI dependencies RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ libc6 \ libgcc1 \ libgssapi-krb5-2 \ libicu66 \ libssl1.1 \ libstdc++6 \ zlib1g \ && rm -rf /var/lib/apt/lists/* # Install .NET Core SDK # When updating the SDK version, the sha512 value a few lines down must also be updated. ENV DOTNET_SDK_VERSION 5.0.100 RUN dotnet_sdk_version=5.0.100 \ && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ && dotnet_sha512='bec37bfb327c45cc01fd843ef93b22b556f753b04724bba501622df124e7e144c303a4d7e931b5dbadbd4f7b39e5adb8f601cb6293e317ad46d8fe7d52aa9a09' \ && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ && mkdir -p /usr/share/dotnet \ && tar -ozxf dotnet.tar.gz -C /usr/share/dotnet \ && rm dotnet.tar.gz \ && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \ # Trigger first run experience by running arbitrary cmd && dotnet help # Copy notebooks COPY ./notebooks/ ${HOME}/notebooks/ # Copy package sources COPY ./NuGet.config ${HOME}/nuget.config RUN chown -R ${NB_UID} ${HOME} USER ${USER} #Install nteract RUN pip install nteract_on_jupyter # Install lastest build from master branch of Microsoft.DotNet.Interactive RUN dotnet tool install -g Microsoft.dotnet-interactive --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" #latest stable from nuget.org #RUN dotnet tool install -g Microsoft.dotnet-interactive --add-source "https://api.nuget.org/v3/index.json" ENV PATH="${PATH}:${HOME}/.dotnet/tools" RUN echo "$PATH" # Install kernel specs RUN dotnet interactive jupyter install # Enable telemetry once we install jupyter for the image ENV DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT=false # Set root to notebooks WORKDIR ${HOME}/notebooks/