Unverified Commit 578a8c8a authored by Nikita Titov's avatar Nikita Titov Committed by GitHub
Browse files

updated docker folder (#2316)

* updated docker folder

* added depth=1 option to all git commands
parent b0b45911
# Using LightGBM via Docker # Using LightGBM via Docker
This directory contains `Dockerfile` to make it easy to build and run LightGBM via [Docker](http://www.docker.com/). This directory contains `Dockerfile`s to make it easy to build and run LightGBM via [Docker](https://www.docker.com/).
## Installing Docker ## Installing Docker
Follow the general installation instructions Follow the general installation instructions [on the Docker site](https://docs.docker.com/install/):
[on the Docker site](https://docs.docker.com/installation/):
* [macOS](https://docs.docker.com/installation/mac/): [docker toolbox](https://www.docker.com/toolbox) * [macOS](https://docs.docker.com/docker-for-mac/install/)
* [Ubuntu](https://docs.docker.com/installation/ubuntulinux/) * [Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/)
* [Windows](https://docs.docker.com/docker-for-windows/install/)
## Using CLI Version of LightGBM via Docker ## Using CLI Version of LightGBM via Docker
...@@ -34,7 +34,7 @@ lightgbm-cli \ ...@@ -34,7 +34,7 @@ lightgbm-cli \
config=lgbm.conf config=lgbm.conf
``` ```
In the above example, three volumes are [mounted](https://docs.docker.com/engine/reference/commandline/run/#mount-volume--v-read-only) In the above example, three volumes are [mounted](https://docs.docker.com/engine/reference/commandline/run/#mount-volume--v---read-only)
from the host machine to the Docker container: from the host machine to the Docker container:
* `lgbm.conf` - task config, for example * `lgbm.conf` - task config, for example
...@@ -51,8 +51,7 @@ convert_model_language=cpp ...@@ -51,8 +51,7 @@ convert_model_language=cpp
* `model.txt` - an input file for the task, could be training data or, in this case, a pre-trained model. * `model.txt` - an input file for the task, could be training data or, in this case, a pre-trained model.
* `out` - a directory to store the output of the task, notice that `convert_model` in the task config is using it. * `out` - a directory to store the output of the task, notice that `convert_model` in the task config is using it.
`config=lgbm.conf` is a command-line argument passed to the `lightgbm` executable, more arguments can `config=lgbm.conf` is a command-line argument passed to the `lightgbm` executable, more arguments can be passed if required.
be passed if required.
## Running the Python-package Сontainer ## Running the Python-package Сontainer
......
FROM ubuntu:16.04 FROM ubuntu:16.04
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y cmake build-essential gcc g++ git && \ apt-get install -y --no-install-recommends \
cmake \
build-essential \
gcc \
g++ \
git && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
RUN git clone --recursive --branch stable https://github.com/Microsoft/LightGBM && \ RUN git clone --recursive --branch stable --depth 1 https://github.com/Microsoft/LightGBM && \
mkdir LightGBM/build && \ mkdir LightGBM/build && \
cd LightGBM/build && \ cd LightGBM/build && \
cmake .. && \ cmake .. && \
......
FROM ubuntu:16.04 FROM ubuntu:16.04
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y cmake build-essential gcc g++ git wget && \ apt-get install -y --no-install-recommends \
cmake \
build-essential \
gcc \
g++ \
git \
wget && \
# python-package # python-package
# miniconda # miniconda
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh && \ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh && \
/bin/bash Miniconda3-latest-Linux-x86_64.sh -f -b -p /opt/conda && \ /bin/bash Miniconda3-latest-Linux-x86_64.sh -f -b -p /opt/conda && \
export PATH="/opt/conda/bin:$PATH" && \ export PATH="/opt/conda/bin:$PATH" && \
conda config --set always_yes yes --set changeps1 no && \
# lightgbm # lightgbm
conda install -y numpy scipy scikit-learn pandas && \ conda install -q -y numpy scipy scikit-learn pandas && \
git clone --recursive https://github.com/Microsoft/LightGBM && \ git clone --recursive --branch stable --depth 1 https://github.com/Microsoft/LightGBM && \
cd LightGBM/python-package && python setup.py install && \ cd LightGBM/python-package && python setup.py install && \
# clean # clean
apt-get autoremove -y && apt-get clean && \ apt-get autoremove -y && apt-get clean && \
conda clean -i -l -t -y && \ conda clean -a -y && \
rm -rf /usr/local/src/* rm -rf /usr/local/src/*
ENV PATH /opt/conda/bin:$PATH ENV PATH /opt/conda/bin:$PATH
...@@ -5,6 +5,6 @@ WORKDIR /lgbm ...@@ -5,6 +5,6 @@ WORKDIR /lgbm
# R # R
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y build-essential && \ apt-get install -y build-essential && \
git clone --recursive --branch stable https://github.com/Microsoft/LightGBM && \ git clone --recursive --branch stable --depth 1 https://github.com/Microsoft/LightGBM && \
cd LightGBM && \ cd LightGBM && \
Rscript build_r.R Rscript build_r.R
# Dockerfile for LightGBM GPU Version with Python # Dockerfile for LightGBM GPU Version with Python
A docker file with LightGBM utilizing nvidia-docker. The file is based on the nvidia/cuda:8.0 image. LightGBM can be utilized in GPU and CPU modes and via Python (2.7 & 3.5) A docker file with LightGBM utilizing nvidia-docker. The file is based on the `nvidia/cuda:8.0-cudnn5-devel` image.
LightGBM can be utilized in GPU and CPU modes and via Python (2.7 & 3.6).
## Contents ## Contents
- LightGBM (cpu + gpu) - LightGBM (cpu + gpu)
- Python 2.7 (Conda) + scikit-learn notebooks pandas matplotlib - Python 2.7 (conda) + scikit-learn, notebooks, pandas, matplotlib
- Python 3.5 (Conda) + scikit-learn notebooks pandas matplotlib - Python 3.6 (conda) + scikit-learn, notebooks, pandas, matplotlib
Running the container starts a jupyter notebook at localhost:8888 Running the container starts a Jupyter Notebook at `localhost:8888`.
jupyter password: keras Jupyter password: `keras`.
## Requirements ## Requirements
......
...@@ -35,7 +35,7 @@ RUN chmod +x /tini ...@@ -35,7 +35,7 @@ RUN chmod +x /tini
# dependencies. It will do this for all repositories and PPAs. # dependencies. It will do this for all repositories and PPAs.
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y \ apt-get install -y --no-install-recommends \
build-essential \ build-essential \
curl \ curl \
wget \ wget \
...@@ -70,19 +70,20 @@ ENV PATH $CONDA_DIR/bin:$PATH ...@@ -70,19 +70,20 @@ ENV PATH $CONDA_DIR/bin:$PATH
# Install miniconda # Install miniconda
RUN echo 'export PATH=/opt/conda/bin:$PATH' > /etc/profile.d/conda.sh && \ RUN echo 'export PATH=/opt/conda/bin:$PATH' > /etc/profile.d/conda.sh && \
wget --quiet https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O ~/miniconda.sh && \ wget --quiet https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
/bin/bash ~/miniconda.sh -b -p /opt/conda && \ /bin/bash ~/miniconda.sh -b -p /opt/conda && \
rm ~/miniconda.sh rm ~/miniconda.sh
RUN conda create -q -n py2 python=2.7 mkl numpy scipy scikit-learn jupyter notebook ipython pandas matplotlib RUN conda config --set always_yes yes --set changeps1 no && \
RUN conda create -q -n py3 python=3.5 mkl numpy scipy scikit-learn jupyter notebook ipython pandas matplotlib conda create -y -q -n py2 python=2.7 mkl numpy scipy scikit-learn jupyter notebook ipython pandas matplotlib && \
conda create -y -q -n py3 python=3.6 mkl numpy scipy scikit-learn jupyter notebook ipython pandas matplotlib
################################################################################################################# #################################################################################################################
# LightGBM # LightGBM
################################################################################################################# #################################################################################################################
RUN cd /usr/local/src && mkdir lightgbm && cd lightgbm && \ RUN cd /usr/local/src && mkdir lightgbm && cd lightgbm && \
git clone --recursive https://github.com/microsoft/LightGBM && \ git clone --recursive --branch stable --depth 1 https://github.com/microsoft/LightGBM && \
cd LightGBM && mkdir build && cd build && \ cd LightGBM && mkdir build && cd build && \
cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ .. && \ cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ .. && \
make OPENCL_HEADERS=/usr/local/cuda-8.0/targets/x86_64-linux/include LIBOPENCL=/usr/local/cuda-8.0/targets/x86_64-linux/lib make OPENCL_HEADERS=/usr/local/cuda-8.0/targets/x86_64-linux/include LIBOPENCL=/usr/local/cuda-8.0/targets/x86_64-linux/lib
...@@ -101,7 +102,7 @@ RUN /bin/bash -c "source activate py3 && cd /usr/local/src/lightgbm/LightGBM/pyt ...@@ -101,7 +102,7 @@ RUN /bin/bash -c "source activate py3 && cd /usr/local/src/lightgbm/LightGBM/pyt
RUN apt-get autoremove -y && apt-get clean && \ RUN apt-get autoremove -y && apt-get clean && \
rm -rf /var/lib/apt/lists/* && \ rm -rf /var/lib/apt/lists/* && \
conda clean -i -l -t -y conda clean -a -y
################################################################################################################# #################################################################################################################
# JUPYTER # JUPYTER
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment