-
Notifications
You must be signed in to change notification settings - Fork 318
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
Interactive docker image #709
base: main
Are you sure you want to change the base?
Changes from 1 commit
d2d621a
13b4283
f805a97
53c4c54
3e2de92
7f85c97
873fa34
d00509b
afd854e
33dc9f4
dbef269
7fb707f
3e434b6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,11 @@ | ||
FROM jupyter/base-notebook:ubuntu-18.04 | ||
|
||
ARG NB_USER=jovyan | ||
ARG NB_UID=1000 | ||
ARG DOTNET_CORE_VERSION=3.1 | ||
ARG DEBIAN_FRONTEND=noninteractive | ||
|
||
ENV DOTNET_CORE_VERSION=$DOTNET_CORE_VERSION | ||
ENV USER ${NB_USER} | ||
ENV NB_UID ${NB_UID} | ||
ENV HOME /home/${NB_USER} | ||
ENV PATH="${PATH}:${HOME}/.dotnet/tools" | ||
|
||
ENV \ | ||
DOTNET_RUNNING_IN_CONTAINER=true \ | ||
ENV DOTNET_RUNNING_IN_CONTAINER=true \ | ||
DOTNET_USE_POLLING_FILE_WATCHER=true \ | ||
NUGET_XMLDOC_MODE=skip \ | ||
DOTNET_TRY_CLI_TELEMETRY_OPTOUT=true | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since this is being proposed as part of the .NET project, telemetry should remain enabled. |
||
|
@@ -21,24 +14,30 @@ USER root | |
|
||
RUN apt-get update \ | ||
&& apt-get install -y --no-install-recommends \ | ||
dialog apt-utils wget ca-certificates openjdk-8-jdk bash software-properties-common supervisor unzip socat net-tools vim \ | ||
libc6 libgcc1 libgssapi-krb5-2 libicu60 libssl1.1 libstdc++6 zlib1g \ | ||
apt-utils \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is requiring all of these native dependencies? Several are already provided by the base image so they don't seem necessary to declare. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be cleaned up now. Java obviously is required by spark. |
||
bash \ | ||
dialog \ | ||
libc6 \ | ||
libgcc1 \ | ||
libgssapi-krb5-2 \ | ||
libicu60 \ | ||
libssl1.1 \ | ||
libstdc++6 zlib1g \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Multiple packages listed together, should get split apart so that zlib1g is not overlooked. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should be in a separate line as well now. |
||
openjdk-8-jdk \ | ||
software-properties-common \ | ||
unzip \ | ||
&& wget -q --show-progress --progress=bar:force:noscroll https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider: I've typically seen Dockerfile avoid using --show-progress as it does have a perf impact. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That raises an interesting point about the purpose of the Dockerfile(s). As far as I am aware, the focus at the moment is to enable an user to build the image(s) her/himself, instead of automating the image build process. That's why I thought it would be useful to show the download progress. Now, for small downloads that doesn't really matter and I therefore have removed it. However, I have added the following line to the dotnet-spark/Dockerfile
as the spark download can take a while. Does that make sense? |
||
&& dpkg -i packages-microsoft-prod.deb \ | ||
&& add-apt-repository universe \ | ||
&& apt-get install -y apt-transport-https \ | ||
&& apt-get update \ | ||
&& apt-get install -y dotnet-sdk-$DOTNET_CORE_VERSION \ | ||
&& apt-get autoremove -y --purge \ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* \ | ||
&& apt-get clean && rm -rf /var/lib/apt/lists/* \ | ||
&& rm -rf packages-microsoft-prod.deb | ||
|
||
COPY ./nuget.config ${HOME}/nuget.config | ||
|
||
RUN chown -R ${NB_UID} ${HOME} | ||
|
||
USER ${USER} | ||
USER ${NB_USER} | ||
|
||
RUN pip install nteract_on_jupyter \ | ||
&& dotnet tool install -g Microsoft.dotnet-interactive \ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This may be a question for Spark team. Thoughts on how to keep this version list up-to-date and other versions included in this script up-to-date? It feels like there should be long term plans for getting this updated "automatically" as part of the release process. Without this they will become stale and/or be a maintenance burden.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed