-
Notifications
You must be signed in to change notification settings - Fork 129
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #282 from ctr26/binder
Binder
- Loading branch information
Showing
22 changed files
with
964 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,252 @@ | ||
|
||
# FROM buildpack-deps:bionic | ||
# FROM nvidia/container-toolkit:1.6.0-ubuntu18.04 | ||
# FROM datmo/buildpack-deps:gpu | ||
FROM floydhub/buildpack-deps:cuda10.0-cudnn7-1.0 | ||
# packaging dependencies | ||
# ENV DEBIAN_FRONTEND=noninteractive | ||
# RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
# dh-make \ | ||
# fakeroot \ | ||
# build-essential \ | ||
# devscripts \ | ||
# lsb-release && \ | ||
# rm -rf /var/lib/apt/lists/* | ||
|
||
# # packaging | ||
# ARG PKG_VERS | ||
# ARG PKG_REV | ||
# ARG RUNTIME_VERSION | ||
# ARG DOCKER_VERSION | ||
|
||
# ENV DEBFULLNAME "NVIDIA CORPORATION" | ||
# ENV DEBEMAIL "[email protected]" | ||
# ENV REVISION "$PKG_VERS-$PKG_REV" | ||
# ENV DOCKER_VERSION $DOCKER_VERSION | ||
# ENV RUNTIME_VERSION $RUNTIME_VERSION | ||
# ENV SECTION "" | ||
|
||
# # output directory | ||
# ENV DIST_DIR=/tmp/nvidia-docker2-$PKG_VERS | ||
# RUN mkdir -p $DIST_DIR /dist | ||
|
||
# # nvidia-docker 2.0 | ||
# COPY .binder/nvidia-docker $DIST_DIR/nvidia-docker | ||
# COPY .binder/daemon.json $DIST_DIR/daemon.json | ||
|
||
# WORKDIR $DIST_DIR | ||
# COPY .binder/debian ./debian | ||
|
||
# # RUN sed -i "s;@VERSION@;${REVISION};" debian/changelog && \ | ||
# # sed -i "s;@VERSION@;${PKG_VERS};" $DIST_DIR/nvidia-docker && \ | ||
# # if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then echo "$(dpkg-parsechangelog --show-field=Version)" && exit 1; fi | ||
|
||
# # CMD export DISTRIB="$(lsb_release -cs)" && \ | ||
# # debuild --preserve-env --dpkg-buildpackage-hook='sh debian/prepare' -i -us -uc -b && \ | ||
# # mv /tmp/*.deb /dist | ||
|
||
# RUN set -eux; \ | ||
# apt-get update; \ | ||
# apt-get install -y --no-install-recommends \ | ||
# ca-certificates \ | ||
# curl \ | ||
# netbase \ | ||
# wget \ | ||
# # https://bugs.debian.org/929417 | ||
# tzdata \ | ||
# ; \ | ||
# rm -rf /var/lib/apt/lists/* | ||
|
||
# RUN set -ex; \ | ||
# if ! command -v gpg > /dev/null; then \ | ||
# apt-get update; \ | ||
# apt-get install -y --no-install-recommends \ | ||
# gnupg \ | ||
# dirmngr \ | ||
# ; \ | ||
# rm -rf /var/lib/apt/lists/*; \ | ||
# fi | ||
|
||
# # procps is very common in build systems, and is a reasonably small package | ||
# RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
# bzr \ | ||
# git \ | ||
# mercurial \ | ||
# openssh-client \ | ||
# subversion \ | ||
# \ | ||
# procps \ | ||
# && rm -rf /var/lib/apt/lists/* | ||
|
||
|
||
# RUN set -ex; \ | ||
# apt-get update; \ | ||
# apt-get install -y --no-install-recommends \ | ||
# autoconf \ | ||
# automake \ | ||
# bzip2 \ | ||
# dpkg-dev \ | ||
# file \ | ||
# g++ \ | ||
# gcc \ | ||
# imagemagick \ | ||
# libbz2-dev \ | ||
# libc6-dev \ | ||
# libcurl4-openssl-dev \ | ||
# libdb-dev \ | ||
# libevent-dev \ | ||
# libffi-dev \ | ||
# libgdbm-dev \ | ||
# libglib2.0-dev \ | ||
# libgmp-dev \ | ||
# libjpeg-dev \ | ||
# libkrb5-dev \ | ||
# liblzma-dev \ | ||
# libmagickcore-dev \ | ||
# libmagickwand-dev \ | ||
# libmaxminddb-dev \ | ||
# libncurses5-dev \ | ||
# libncursesw5-dev \ | ||
# libpng-dev \ | ||
# libpq-dev \ | ||
# libreadline-dev \ | ||
# libsqlite3-dev \ | ||
# libssl-dev \ | ||
# libtool \ | ||
# libwebp-dev \ | ||
# libxml2-dev \ | ||
# libxslt-dev \ | ||
# libyaml-dev \ | ||
# make \ | ||
# patch \ | ||
# unzip \ | ||
# xz-utils \ | ||
# zlib1g-dev \ | ||
# \ | ||
# # https://lists.debian.org/debian-devel-announce/2016/09/msg00000.html | ||
# $( \ | ||
# # if we use just "apt-cache show" here, it returns zero because "Can't select versions from package 'libmysqlclient-dev' as it is purely virtual", hence the pipe to grep | ||
# if apt-cache show 'default-libmysqlclient-dev' 2>/dev/null | grep -q '^Version:'; then \ | ||
# echo 'default-libmysqlclient-dev'; \ | ||
# else \ | ||
# echo 'libmysqlclient-dev'; \ | ||
# fi \ | ||
# ) \ | ||
# ; \ | ||
# rm -rf /var/lib/apt/lists/* | ||
|
||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
RUN apt-get -qq update && apt-get -qq install --yes --no-install-recommends locales > /dev/null && apt-get -qq purge && apt-get -qq clean && rm -rf /var/lib/apt/lists/* | ||
|
||
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen | ||
|
||
ENV LC_ALL en_US.UTF-8 | ||
|
||
ENV LANG en_US.UTF-8 | ||
|
||
ENV LANGUAGE en_US.UTF-8 | ||
|
||
ENV SHELL /bin/bash | ||
|
||
ARG NB_USER | ||
|
||
ARG NB_UID | ||
|
||
ENV USER ${NB_USER} | ||
|
||
ENV HOME /home/${NB_USER} | ||
|
||
RUN groupadd --gid ${NB_UID} ${NB_USER} && useradd --comment "Default user" --create-home --gid ${NB_UID} --no-log-init --shell /bin/bash --uid ${NB_UID} ${NB_USER} | ||
|
||
RUN wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && DISTRO="bionic" && echo "deb https://deb.nodesource.com/node_14.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list && echo "deb-src https://deb.nodesource.com/node_14.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list | ||
|
||
RUN apt-get -qq update && apt-get -qq install --yes --no-install-recommends less nodejs unzip > /dev/null && apt-get -qq purge && apt-get -qq clean && rm -rf /var/lib/apt/lists/* | ||
|
||
|
||
EXPOSE 8888 | ||
|
||
ENV APP_BASE /srv | ||
|
||
ENV NPM_DIR ${APP_BASE}/npm | ||
|
||
ENV NPM_CONFIG_GLOBALCONFIG ${NPM_DIR}/npmrc | ||
|
||
ENV CONDA_DIR ${APP_BASE}/conda | ||
|
||
ENV NB_PYTHON_PREFIX ${CONDA_DIR}/envs/notebook | ||
|
||
ENV KERNEL_PYTHON_PREFIX ${NB_PYTHON_PREFIX} | ||
|
||
ENV PATH ${NB_PYTHON_PREFIX}/bin:${CONDA_DIR}/bin:${NPM_DIR}/bin:${PATH} | ||
|
||
ENV NB_ENVIRONMENT_FILE="/tmp/environment.py-3.7.lock" | ||
|
||
COPY --chown=${NB_USER}:${NB_USER} .binder/environment.py-3.7.lock ${NB_ENVIRONMENT_FILE} | ||
|
||
COPY --chown=${NB_USER}:${NB_USER} .binder/activate_conda.sh /etc/profile.d/activate-conda.sh | ||
|
||
RUN chmod +x /etc/profile.d/activate-conda.sh | ||
|
||
COPY --chown=${NB_USER}:${NB_USER} .binder/environment.yml /tmp/environment.yml | ||
|
||
COPY --chown=${NB_USER}:${NB_USER} .binder/install_miniforge.sh /tmp/install-miniforge.bash | ||
|
||
RUN chmod +x /tmp/install-miniforge.bash | ||
|
||
RUN mkdir -p ${NPM_DIR} && chown -R ${NB_USER}:${NB_USER} ${NPM_DIR} | ||
|
||
USER ${NB_USER} | ||
|
||
RUN npm config --global set prefix ${NPM_DIR} | ||
|
||
USER root | ||
|
||
RUN TIMEFORMAT='time: %3R' bash -c 'time /tmp/install-miniforge.bash' && rm /tmp/install-miniforge.bash ${NB_ENVIRONMENT_FILE} | ||
|
||
ARG REPO_DIR=${HOME} | ||
|
||
ENV REPO_DIR ${REPO_DIR} | ||
|
||
|
||
WORKDIR ${REPO_DIR} | ||
|
||
RUN chown ${NB_USER}:${NB_USER} ${REPO_DIR} | ||
|
||
|
||
ENV PATH ${HOME}/.local/bin:${REPO_DIR}/.local/bin:${PATH} | ||
|
||
|
||
ENV CONDA_DEFAULT_ENV ${KERNEL_PYTHON_PREFIX} | ||
|
||
|
||
COPY --chown=${USER}:${USER} .binder/environment.yml ${REPO_DIR}/.binder/environment.yml | ||
|
||
COPY --chown=${USER}:${USER} . ${REPO_DIR} | ||
|
||
RUN chmod +x "${REPO_DIR}/.binder/postBuildAdmin" && "${REPO_DIR}/.binder/postBuildAdmin" | ||
|
||
USER ${NB_USER} | ||
|
||
|
||
RUN TIMEFORMAT='time: %3R' bash -c 'time mamba env update -p ${NB_PYTHON_PREFIX} -f ".binder/environment.yml" && time mamba clean --all -f -y && mamba list -p ${NB_PYTHON_PREFIX} ' | ||
|
||
|
||
LABEL repo2docker.ref="None" | ||
|
||
LABEL repo2docker.repo="local" | ||
|
||
LABEL repo2docker.version="2021.01.0" | ||
|
||
|
||
# COPY --chown=${USER}:${USER} . {REPO_DIR} | ||
|
||
USER ${NB_USER} | ||
|
||
RUN chmod +x .binder/postBuild && "${REPO_DIR}/.binder/postBuild" | ||
|
||
RUN chmod +x "${REPO_DIR}/.binder/start" | ||
ENV R2D_ENTRYPOINT "${REPO_DIR}/.binder/start" | ||
# COPY /repo2docker-entrypoint /usr/local/bin/repo2docker-entrypoint | ||
# ENTRYPOINT ["/usr/local/bin/repo2docker-entrypoint"] | ||
CMD ["jupyter", "notebook", "--ip", "0.0.0.0"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# enable conda and activate the notebook environment | ||
CONDA_PROFILE="${CONDA_DIR}/etc/profile.d/conda.sh" | ||
test -f $CONDA_PROFILE && . $CONDA_PROFILE | ||
if [[ "${KERNEL_PYTHON_PREFIX}" != "${NB_PYTHON_PREFIX}" ]]; then | ||
# if the kernel is a separate env, stack them | ||
# so both are on PATH, notebook first | ||
conda activate ${KERNEL_PYTHON_PREFIX} | ||
conda activate --stack ${NB_PYTHON_PREFIX} | ||
|
||
# even though it's second on $PATH | ||
# make sure CONDA_DEFAULT_ENV is the *kernel* env | ||
# so that `!conda install PKG` installs in the kernel env | ||
# where user packages are installed, not the notebook env | ||
# which only contains UI when the two are different | ||
export CONDA_DEFAULT_ENV="${KERNEL_PYTHON_PREFIX}" | ||
else | ||
conda activate ${NB_PYTHON_PREFIX} | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"runtimes": { | ||
"nvidia": { | ||
"path": "nvidia-container-runtime", | ||
"runtimeArgs": [] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
nvidia-docker2 (2.6.0-1) UNRELEASED; urgency=medium | ||
|
||
* Add dependence on nvidia-container-runtime >= 3.5.0 | ||
* Add Jenkinsfile for building packages | ||
|
||
-- NVIDIA CORPORATION <[email protected]> Thu, 29 Apr 2021 05:25:25 +0000 | ||
|
||
nvidia-docker2 (2.5.0-1) UNRELEASED; urgency=medium | ||
|
||
* Bump version to v2.5.0 | ||
* Add dependence on nvidia-container-runtime >= 3.4.0 | ||
* Update readme to point to the official documentatio | ||
* Add %config directive to daemon.json for RPM installations | ||
|
||
-- NVIDIA CORPORATION <[email protected]> Wed, 16 Sep 2020 13:55:52 +0000 | ||
|
||
nvidia-docker2 (2.4.0-1) UNRELEASED; urgency=medium | ||
|
||
* 09a01276 Update package license to match source license | ||
* b9c70155 Update dependence on nvidia-container-runtime to 3.3.0 | ||
|
||
-- NVIDIA CORPORATION <[email protected]> Wed, 08 Jul 2020 20:33:10 +0000 | ||
|
||
nvidia-docker2 (2.3.0-1) UNRELEASED; urgency=medium | ||
|
||
* 0d3b049a Update build system to support multi-arch builds | ||
* 8557216d Require new MIG changes | ||
|
||
-- NVIDIA CORPORATION <[email protected]> Fri, 15 May 2020 12:04:57 +0000 | ||
|
||
nvidia-docker2 (2.2.2-1) UNRELEASED; urgency=medium | ||
|
||
* 2e9f20b Improve pass-through of docker arguments | ||
* 4edca2f Pave the way for a hypothetical transitional package from v1 | ||
|
||
-- NVIDIA CORPORATION <[email protected]> Wed, 07 Mar 2018 04:06:38 +0000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
Source: nvidia-docker2 | ||
Section: @SECTION@utils | ||
Priority: optional | ||
Maintainer: NVIDIA CORPORATION <[email protected]> | ||
Standards-Version: 3.9.8 | ||
Homepage: https://github.com/NVIDIA/nvidia-docker/wiki | ||
Vcs-Git: https://github.com/NVIDIA/nvidia-docker | ||
Vcs-Browser: https://github.com/NVIDIA/nvidia-docker | ||
Build-Depends: debhelper (>= 9) | ||
|
||
Package: nvidia-docker2 | ||
Architecture: all | ||
Breaks: nvidia-docker (<< 2.0.0) | ||
Replaces: nvidia-docker (<< 2.0.0) | ||
Depends: ${misc:Depends}, nvidia-container-runtime (>= @RUNTIME_VERSION@), @DOCKER_VERSION@ | ||
Description: nvidia-docker CLI wrapper | ||
Replaces nvidia-docker with a new implementation based on | ||
nvidia-container-runtime |
Oops, something went wrong.