Giter Club home page Giter Club logo

build's Introduction

 build

This repository contains the source files for rapidsai Docker images

Image Types

There are currently three different types of Docker images, which follow the same conventions provided by the NVIDIA CUDA Docker images, and allow users to use the RAPIDS images a drop-in replacements for their CUDA images. Each type is supported on a combination of OS, Python version, and CUDA version which produces a matrix of available image types (and lots of tags!). The different types are described below:

Type Description Target Audience
base Extends the corresponding CUDA image to add conda and the RAPIDS conda packages in a rapids conda environment Users that do not need examples or the need to modify and/or build RAPIDS sources
runtime Extends the base image to add the RAPIDS Jupyter notebooks, all dependencies of the notebooks installed to the rapids conda environment, and runs a Jupyter server as the default Docker ENTRYPOINT Users interested in exploring the example notebooks
devel Extends the corresponding CUDA image to add the full RAPIDS build and test toolchain (gcc, build tools, etc.) to the system and/or rapids environment as well as the notebooks, their dependencies, and runs a Jupyter server as the default Docker ENTRYPOINT Users that are doing active development on RAPIDS and need to build and test their changes

At a high-level, the differences between base, runtime, and devel is the way RAPIDS is installed. base and runtime are identical in how RAPIDS is installed, with the only difference between them is that runtime has (many) more 3rd-party packages installed to support the notebooks. devel is completely different in that RAPIDS is built from source in the container and installed into the rapids environment using an install command. Because of these differences, we often refer to the images as base & runtime and devel.

Image Locations

RAPIDS releases both stable and nightly images in the following repositories. stable releases match our conda stable version releases. While our nightly releases are generated every night from the latest WIP development branch. Below is a table of their repositories and tag lists:

Type stable Repository nightly Repository
base rapidsai/rapidsai rapidsai/rapidsai-nightly
runtime rapidsai/rapidsai rapidsai/rapidsai-nightly
devel rapidsai/rapidsai-dev rapidsai/rapidsai-dev-nightly

Extending Images

Like any Docker image, the RAPIDS images can be extended to suit the needs of individual teams. Whether it is to add custom libraries, change security settings, or other customizations; using FROM and our RAPIDS images allows you to customize the container, but easily update to the latest versions with a new docker build.

Custom Token Example

For example, the runtime and devel images use an empty token for securing the Jupyter notebook server. While this is a fast easy solution for dev and exploratory environments, those in production environments may need more security.

Using the following short Dockerfile users can leverage the exisitng RAPIDS images and build a custom secure image:

FROM rapidsai/rapidsai-nightly:cuda10.2-runtime-ubuntu18.04-py3.7
RUN sed -i "s/NotebookApp.token=''/NotebookApp.token='secure-token-here'/g" /rapids/utils/start_jupyter.sh

Once built, the resulting image will be secured with the new token.

This example can be repurposed by replacing the sed command with other commands for custom libraries or settings.

Additional Docs

  • Usage
    • Build Tools - includes a description of the tooling used in this repository
  • Build Tools Docs

build's People

Contributors

ajschmidt8 avatar dillon-cullinan avatar mike-wendt avatar mluukkainen avatar okoskinen avatar raydouglass avatar rlratzel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.