You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by wa...@apache.org on 2017/01/16 08:02:31 UTC
[3/5] incubator-singa git commit: SINGA-276 Create docker images
SINGA-276 Create docker images
add build script for creating docker images and the README.md file
Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/9a0a3fd2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/9a0a3fd2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/9a0a3fd2
Branch: refs/heads/master
Commit: 9a0a3fd2b4902091eae34d880f681ed9791cd539
Parents: ab7221e
Author: wangwei <wa...@comp.nus.edu.sg>
Authored: Wed Jan 11 22:58:19 2017 +0800
Committer: wangwei <wa...@comp.nus.edu.sg>
Committed: Fri Jan 13 13:39:29 2017 +0800
----------------------------------------------------------------------
tool/docker/README.md | 34 +++++++++++++
tool/docker/build.sh | 51 ++++++++++++++++++++
tool/docker/runtime/Dockerfile | 4 +-
tool/docker/runtime/cuda/Dockerfile | 15 ++++++
.../jenkins/docker/ubuntu14.04/devel/Dockerfile | 2 +-
.../jenkins/docker/ubuntu16.04/devel/Dockerfile | 4 +-
6 files changed, 106 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/9a0a3fd2/tool/docker/README.md
----------------------------------------------------------------------
diff --git a/tool/docker/README.md b/tool/docker/README.md
new file mode 100644
index 0000000..132a696
--- /dev/null
+++ b/tool/docker/README.md
@@ -0,0 +1,34 @@
+# SINGA Docker Images
+
+## Availabe images
+
+| Tag | OS version | devel/runtime | Device|CUDA/CUDNN|
+|:----|:-----------|:--------------|:------|:---------|
+|runtime| Ubuntu16.04|runtime|CPU|-|
+|runtime-cuda| Ubuntu16.04|runtime|GPU|CUDA8.0+CUDNN5|
+|devel| Ubuntu16.04|devel|CPU|-|
+|devel-cuda| Ubuntu16.04|devel|GPU|CUDA8.0+CUDNN5|
+
+## Usage
+
+ docker pull nusdbsystem/singa:<Tag>
+ docker run -it nusdbsystem/singa:<Tag> /bin/bash
+
+* For the *devel* images, the container has a `incubator-singa` folder in the root directory,
+which has the latest SINGA code. The code has been compiled into `incubator-singa/build` directory and PySINGA has been installed.
+* For the *runtime* images, the container has only installed the PySINGA.
+
+## Tag naming style
+
+ singa:devel|runtime[-OS][-CUDA|OPENCL][-CUDNN]
+
+* devel: development images with all dependent libs' header files installed and SINGA's source code;
+* runtime: the minimal images which can run SINGA programs.
+* OS: ubuntu, ubuntu14.04, centos, centos6
+* CUDA: cuda, cuda8.0, cuda7.0
+* CUDNN: cudnn, cudnn5, cudnn4
+* OPENCL: opencl, opencl1.2
+
+By default, if the version is not included in the tag, the latest stable version is used.
+The default OS is ubuntu. The version is the latest stable version (e.g., 16.04 for now).
+For -cuda version, the **cudnn** is included by default. Their versions are also the latest stable version, i.e., cuda-8.0 and cudnn-5 for now.
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/9a0a3fd2/tool/docker/build.sh
----------------------------------------------------------------------
diff --git a/tool/docker/build.sh b/tool/docker/build.sh
new file mode 100755
index 0000000..bc3b488
--- /dev/null
+++ b/tool/docker/build.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+#/**
+# *
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements. See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership. The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License. You may obtain a copy of the License at
+# *
+# * http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+
+# build all docker images, must be exected under the root directory, i.e., incubator-singa/
+# ./build.sh PUSH would push the images to dockerhub/nusdbsystem and then delete the local image
+# (used by Jenkins to avoid dangling images from multiple building)
+
+echo "build singa:runtime"
+docker build tool/docker/runtime/ --force-rm -t nusdbsystem/singa:runtime
+if [ $1 = "PUSH" ]; then
+ docker push nusdbsystem/singa:runtime
+ docker rmi nusdbsystem/singa:runtime
+fi
+
+echo "build singa:runtime-cuda"
+docker build tool/docker/runtime/cuda --force-rm -t nusdbsystem/singa:runtime-cuda
+if [ $1 = "PUSH" ]; then
+ docker push nusdbsystem/singa:runtime-cuda
+ docker rmi nusdbsystem/singa:runtime-cuda
+fi
+
+echo "build singa:devel"
+docker build tool/docker/devel/ --force-rm -t nusdbsystem/singa:devel
+if [ $1 = "PUSH" ]; then
+ docker push nusdbsystem/singa:devel
+ docker rmi nusdbsystem/singa:devel
+fi
+
+echo "build singa:devel-cuda"
+docker build tool/docker/devel/cuda --force-rm -t nusdbsystem/singa:devel-cuda
+if [ $1 = "PUSH" ]; then
+ docker push nusdbsystem/singa:devel-cuda
+ docker rmi nusdbsystem/singa:devel-cuda
+fi
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/9a0a3fd2/tool/docker/runtime/Dockerfile
----------------------------------------------------------------------
diff --git a/tool/docker/runtime/Dockerfile b/tool/docker/runtime/Dockerfile
index eb6227d..2bdc400 100644
--- a/tool/docker/runtime/Dockerfile
+++ b/tool/docker/runtime/Dockerfile
@@ -11,5 +11,5 @@ RUN apt-get update \
&& pip --no-cache-dir install -U pip setuptools
-# install pysinga
-RUN pip install --upgrade http://www.comp.nus.edu.sg/~dbsystem/singa/assets/file/whl/latest/ubuntu16.04-cpp/singa-1.0.1-py2-none-any.whl
+# install pysinga TODO(wangwei) install debian package
+RUN pip install --upgrade http://www.comp.nus.edu.sg/~dbsystem/singa/assets/file/wheel/linux/latest/ubuntu16.04-cpp/singa-1.0.1-py2-none-any.whl
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/9a0a3fd2/tool/docker/runtime/cuda/Dockerfile
----------------------------------------------------------------------
diff --git a/tool/docker/runtime/cuda/Dockerfile b/tool/docker/runtime/cuda/Dockerfile
new file mode 100644
index 0000000..c2ec929
--- /dev/null
+++ b/tool/docker/runtime/cuda/Dockerfile
@@ -0,0 +1,15 @@
+# Base unbuntu 16.04, cuda8.0, cudnn5
+FROM nvidia/cuda:8.0-cudnn5-runtime-ubuntu16.04
+
+MAINTAINER incubator-singa dev@singa.incubator.apache.org
+
+# install dependencies
+RUN apt-get update \
+ && apt-get install -y --no-install-recommends git python python-pip \
+ && apt-get clean && apt-get autoremove && apt-get autoclean \
+ && rm -rf /var/lib/apt/lists/* \
+ && pip --no-cache-dir install -U pip setuptools
+
+
+# install pysinga TODO(wangwei) install debian package
+RUN pip install --upgrade http://www.comp.nus.edu.sg/~dbsystem/singa/assets/file/wheel/linux/latest/ubuntu16.04-cuda8.0-cudnn5/singa-1.0.1-py2-none-any.whl
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/9a0a3fd2/tool/jenkins/docker/ubuntu14.04/devel/Dockerfile
----------------------------------------------------------------------
diff --git a/tool/jenkins/docker/ubuntu14.04/devel/Dockerfile b/tool/jenkins/docker/ubuntu14.04/devel/Dockerfile
index 838be4a..827eb31 100644
--- a/tool/jenkins/docker/ubuntu14.04/devel/Dockerfile
+++ b/tool/jenkins/docker/ubuntu14.04/devel/Dockerfile
@@ -8,7 +8,7 @@ FROM nvidia/cuda:7.5-cudnn5-devel
# install dependencies
RUN apt-get update \
- && apt-get install -y --no-install-recommends git build-essential autoconf libtool cmake libpcre3-dev libprotobuf-dev libopenblas-dev protobuf-compiler python-dev python-pip wget openssh-server\
+ && apt-get install -y --no-install-recommends git build-essential autoconf libtool cmake libpcre3-dev python-dev python-pip wget openssh-server \
&& apt-get clean && apt-get autoremove && apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* \
&& pip install -U pip wheel numpy setuptools unittest-xml-reporting protobuf
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/9a0a3fd2/tool/jenkins/docker/ubuntu16.04/devel/Dockerfile
----------------------------------------------------------------------
diff --git a/tool/jenkins/docker/ubuntu16.04/devel/Dockerfile b/tool/jenkins/docker/ubuntu16.04/devel/Dockerfile
index da8836e..3faf0a7 100644
--- a/tool/jenkins/docker/ubuntu16.04/devel/Dockerfile
+++ b/tool/jenkins/docker/ubuntu16.04/devel/Dockerfile
@@ -9,11 +9,13 @@ MAINTAINER incubator-singa dev@singa.incubator.apache.org
# install dependencies
RUN apt-get update \
- && apt-get install -y --no-install-recommends git g++ cmake libprotobuf-dev libopenblas-dev protobuf-compiler python-dev python-pip swig wget openssh-server\
+ && apt-get install -y --no-install-recommends git g++ cmake python-dev python-pip swig wget openssh-server \
&& apt-get clean && apt-get autoremove && apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* \
&& pip --no-cache-dir install -U pip wheel numpy setuptools unittest-xml-reporting protobuf
+# libprotobuf-dev libopenblas-dev protobuf-compiler \
+
# set environment
ENV CPLUS_INCLUDE_PATH /usr/local/lib/python2.7/dist-packages/numpy/core/include:${CPLUS_INCLUDE_PATH}
ENV CMAKE_INCLUDE_PATH /usr/local/cuda/include:${CMAKE_INCLUDE_PATH}