Skip to content

Commit 3ec0a31

Browse files
committed
Added jupyter notebook configuration
1 parent 4f18427 commit 3ec0a31

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed

Dockerfile.txt

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
FROM jupyter/base-notebook:latest
2+
3+
# Install .NET CLI dependencies
4+
5+
ARG NB_USER=jovyan
6+
ARG NB_UID=1000
7+
ENV USER ${NB_USER}
8+
ENV NB_UID ${NB_UID}
9+
ENV HOME /home/${NB_USER}
10+
11+
WORKDIR ${HOME}
12+
13+
USER root
14+
RUN apt-get update
15+
RUN apt-get install -y curl
16+
17+
ENV \
18+
# Enable detection of running in a container
19+
DOTNET_RUNNING_IN_CONTAINER=true \
20+
# Enable correct mode for dotnet watch (only mode supported in a container)
21+
DOTNET_USE_POLLING_FILE_WATCHER=true \
22+
# Skip extraction of XML docs - generally not useful within an image/container - helps performance
23+
NUGET_XMLDOC_MODE=skip \
24+
# Opt out of telemetry until after we install jupyter when building the image, this prevents caching of machine id
25+
DOTNET_TRY_CLI_TELEMETRY_OPTOUT=true
26+
27+
# Install .NET CLI dependencies
28+
RUN apt-get update \
29+
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
30+
libc6 \
31+
libgcc1 \
32+
libgssapi-krb5-2 \
33+
libicu66 \
34+
libssl1.1 \
35+
libstdc++6 \
36+
zlib1g \
37+
&& rm -rf /var/lib/apt/lists/*
38+
39+
# Install .NET Core SDK
40+
41+
# When updating the SDK version, the sha512 value a few lines down must also be updated.
42+
ENV DOTNET_SDK_VERSION 3.1.301
43+
44+
RUN dotnet_sdk_version=3.1.301 \
45+
&& curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \
46+
&& dotnet_sha512='dd39931df438b8c1561f9a3bdb50f72372e29e5706d3fb4c490692f04a3d55f5acc0b46b8049bc7ea34dedba63c71b4c64c57032740cbea81eef1dce41929b4e' \
47+
&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \
48+
&& mkdir -p /usr/share/dotnet \
49+
&& tar -ozxf dotnet.tar.gz -C /usr/share/dotnet \
50+
&& rm dotnet.tar.gz \
51+
&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
52+
# Trigger first run experience by running arbitrary cmd
53+
&& dotnet help
54+
55+
# Copy notebooks
56+
57+
COPY ./notebooks/ ${HOME}/notebooks/
58+
59+
# Copy package sources
60+
61+
COPY ./NuGet.config ${HOME}/nuget.config
62+
63+
RUN chown -R ${NB_UID} ${HOME}
64+
USER ${USER}
65+
66+
#Install nteract
67+
RUN pip install nteract_on_jupyter
68+
69+
# Install lastest build from master branch of Microsoft.DotNet.Interactive from myget
70+
RUN dotnet tool install -g Microsoft.dotnet-interactive --add-source "https://dotnet.myget.org/F/dotnet-try/api/v3/index.json"
71+
72+
#latest stable from nuget.org
73+
#RUN dotnet tool install -g Microsoft.dotnet-interactive --add-source "https://api.nuget.org/v3/index.json"
74+
75+
ENV PATH="${PATH}:${HOME}/.dotnet/tools"
76+
RUN echo "$PATH"
77+
78+
# Install kernel specs
79+
RUN dotnet interactive jupyter install
80+
81+
# Enable telemetry once we install jupyter for the image
82+
ENV DOTNET_TRY_CLI_TELEMETRY_OPTOUT=false
83+
84+
# Set root to notebooks
85+
WORKDIR ${HOME}/notebooks/

NuGet.config

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<solution>
4+
<add key="disableSourceControlIntegration" value="true" />
5+
</solution>
6+
<packageSources>
7+
<clear />
8+
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
9+
<add key="dotnet3-dev" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json" />
10+
<add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
11+
<add key="dotnet-try" value="https://dotnet.myget.org/F/dotnet-try/api/v3/index.json" />
12+
<add key="roslyn" value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
13+
<add key="dotnet-corefxlab" value="https://dotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json" />
14+
<add key="PSGallery" value="https://www.powershellgallery.com/api/v2/" />
15+
</packageSources>
16+
</configuration>

notebooks/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Interactive Notebooks demonstrating C# language features
2+
3+
This is a collection of notebooks, one for each stream where we discuss C# language features and programming techniques

0 commit comments

Comments
 (0)