Dockerfile 5.0 KB
Newer Older
Y
yi.wu 已提交
1 2
# A image for building paddle binaries
# Use cuda devel base image for both cpu and gpu environment
D
dzhwinter 已提交
3
# When you modify it, please be aware of cudnn-runtime version
G
gongweibao 已提交
4
# and libcudnn.so.x in paddle/scripts/docker/build.sh
Y
init  
Yang Yang 已提交
5
FROM nvidia/cuda:8.0-cudnn7-devel-ubuntu16.04
Y
Yi Wang 已提交
6
MAINTAINER PaddlePaddle Authors <paddle-dev@baidu.com>
7

Y
yangwenbo02 已提交
8
ARG UBUNTU_MIRROR
Y
yi.wu 已提交
9
RUN /bin/bash -c 'if [[ -n ${UBUNTU_MIRROR} ]]; then sed -i 's#http://archive.ubuntu.com/ubuntu#${UBUNTU_MIRROR}#g' /etc/apt/sources.list; fi'
L
liaogang 已提交
10

L
liaogang 已提交
11
# ENV variables
Y
yi.wu 已提交
12
ARG WITH_GPU
L
liaogang 已提交
13 14 15
ARG WITH_AVX
ARG WITH_DOC

Y
update  
Yancey1989 已提交
16
ENV WOBOQ OFF
17
ENV WITH_GPU=${WITH_GPU:-ON}
L
liaogang 已提交
18 19 20 21 22 23 24
ENV WITH_AVX=${WITH_AVX:-ON}
ENV WITH_DOC=${WITH_DOC:-OFF}

ENV HOME /root
# Add bash enhancements
COPY ./paddle/scripts/docker/root/ /root/

M
minqiyang 已提交
25
RUN apt-get update && \
M
minqiyang 已提交
26
    apt-get install -y --allow-downgrades patchelf \
M
minqiyang 已提交
27
    python3 python3-dev python3-pip \
28
    git python-pip python-dev python-opencv openssh-server bison \
M
minqiyang 已提交
29
    libnccl2=2.1.2-1+cuda8.0 libnccl-dev=2.1.2-1+cuda8.0 \
D
dongzhihong 已提交
30
    wget unzip unrar tar xz-utils bzip2 gzip coreutils ntp \
Y
Yi Wang 已提交
31
    curl sed grep graphviz libjpeg-dev zlib1g-dev  \
Y
Yu Yang 已提交
32
    python-matplotlib gcc-4.8 g++-4.8 \
Y
yuyang18 已提交
33
    automake locales clang-format swig cmake  \
34
    liblapack-dev liblapacke-dev \
Q
qijun 已提交
35
    clang-3.8 llvm-3.8 libclang-3.8-dev \
36 37
    build-essential checkinstall \
    libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev \
38
    net-tools libtool ccache && \
Q
qijun 已提交
39 40
    apt-get clean -y

41 42
COPY tools/manylinux1/build_scripts/* /root/python/
RUN cd /root/python/ && source build_utils && MY_DIR=/root/python/ build_cpythons 3.6.0 3.7.0
H
Helin Wang 已提交
43

44 45 46 47 48 49 50 51 52 53 54
# # Install Go and glide
# RUN wget -qO- https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz | \
    # tar -xz -C /usr/local && \
    # mkdir /root/gopath && \
    # mkdir /root/gopath/bin && \
    # mkdir /root/gopath/src
# ENV GOROOT=/usr/local/go GOPATH=/root/gopath
# # should not be in the same line with GOROOT definition, otherwise docker build could not find GOROOT.
# ENV PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin
# # install glide
# RUN curl -s -q https://glide.sh/get | sh
Y
Yan Chunwei 已提交
55

56 57 58 59 60 61 62 63 64 65
# # Install TensorRT
# # following TensorRT.tar.gz is not the default official one, we do two miny changes:
# # 1. Remove the unnecessary files to make the library small. TensorRT.tar.gz only contains include and lib now,
# #    and its size is only one-third of the official one.
# # 2. Manually add ~IPluginFactory() in IPluginFactory class of NvInfer.h, otherwise, it couldn't work in paddle.
# #    See https://github.com/PaddlePaddle/Paddle/issues/10129 for details.
# RUN wget -qO- http://paddlepaddledeps.cdn.bcebos.com/TensorRT-4.0.0.3.Ubuntu-16.04.4.x86_64-gnu.cuda-8.0.cudnn7.0.tar.gz | \
    # tar -xz -C /usr/local && \
    # cp -rf /usr/local/TensorRT/include /usr && \
    # cp -rf /usr/local/TensorRT/lib /usr
L
liaogang 已提交
66

67 68
# # git credential to skip password typing
# RUN git config --global credential.helper store
L
liaogang 已提交
69

70 71
# # Fix locales to en_US.UTF-8
# RUN localedef -i en_US -f UTF-8 en_US.UTF-8
_青葱's avatar
_青葱 已提交
72

73 74 75 76 77 78
# # FIXME: due to temporary ipykernel dependency issue, specify ipykernel jupyter
# # version util jupyter fixes this issue.

# # specify sphinx version as 1.5.6 and remove -U option for [pip install -U
# # sphinx-rtd-theme] since -U option will cause sphinx being updated to newest
# # version(1.7.1 for now), which causes building documentation failed.
M
minqiyang 已提交
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
# RUN pip3 install -U wheel && \
    # pip3 install -U docopt PyYAML sphinx==1.5.6 && \
    # pip3 install sphinx-rtd-theme==0.1.9 recommonmark && \
    # easy_install -U pip && \
    # pip install -U pip setuptools wheel && \
    # pip install -U docopt PyYAML sphinx==1.5.6 && \
    # pip install sphinx-rtd-theme==0.1.9 recommonmark

# RUN pip3 install 'pre-commit==1.10.4' 'ipython==5.3.0' && \
    # pip3 install 'ipykernel==4.6.0' 'jupyter==1.0.0' && \
    # pip3 install opencv-python && \
    # pip install 'pre-commit==1.10.4' 'ipython==5.3.0' && \
    # pip install 'ipykernel==4.6.0' 'jupyter==1.0.0' && \
    # pip install opencv-python

# #For docstring checker
# RUN pip3 install pylint pytest astroid isort
# RUN pip install pylint pytest astroid isort LinkChecker

# COPY ./python/requirements.txt /root/
# RUN pip3 install -r /root/requirements.txt
# RUN pip install -r /root/requirements.txt

# # To fix https://github.com/PaddlePaddle/Paddle/issues/1954, we use
# # the solution in https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2
# RUN apt-get install -y libssl-dev libffi-dev
# RUN pip3 install certifi urllib3[secure]
# RUN pip install certifi urllib3[secure]


# # Install woboq_codebrowser to /woboq
# RUN git clone https://github.com/woboq/woboq_codebrowser /woboq && \
    # (cd /woboq \
     # cmake -DLLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-3.8 \
           # -DCMAKE_BUILD_TYPE=Release . \
     # make)

# # Configure OpenSSH server. c.f. https://docs.docker.com/engine/examples/running_ssh_service
# RUN mkdir /var/run/sshd
# RUN echo 'root:root' | chpasswd
# RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
# RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
# EXPOSE 22