DOCKER.md 2.8 KB
Newer Older
M
MRXLT 已提交
1
# 使用Docker编译Paddle Serving
M
MRXLT 已提交
2

M
MRXLT 已提交
3
## Docker编译环境要求
M
MRXLT 已提交
4

M
MRXLT 已提交
5
+ 开发机上已安装Docker
M
MRXLT 已提交
6 7
+ 编译GPU版本需要安装nvidia-docker

M
MRXLT 已提交
8
## CPU版本Dockerfile
M
MRXLT 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

```bash
FROM centos:centos6.10
RUN yum -y install wget \
    && wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtoolset-2.repo \
    && yum -y install devtoolset-2-gcc devtoolset-2-gcc-c++ devtoolset-2-binutils \
    && source /opt/rh/devtoolset-2/enable \
    && echo "source /opt/rh/devtoolset-2/enable" >> /etc/profile \
    && yum -y install git openssl-devel curl-devel bzip2-devel \
    && wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz \
    && tar xvf cmake-3.5.2.tar.gz \
    && cd cmake-3.5.2 \
    &&  ./bootstrap --prefix=/usr \
    && make \
    && make install \
    && cd .. \
    && rm -r cmake-3.5.2* \
    && wget https://dl.google.com/go/go1.12.12.linux-amd64.tar.gz \
    && tar -xzvf go1.12.12.linux-amd64.tar.gz \
    && mv go /usr/local/go \
    && rm go1.12.12.linux-amd64.tar.gz \
    && echo "export GOROOT=/usr/local/go" >> /root/.bashrc \
    && echo "export GOPATH=$HOME/go" >> /root/.bashrc \
    && echo "export PATH=$PATH:/usr/local/go/bin" >> /root/.bashrc
```



M
fix md  
MRXLT 已提交
37
## GPU版本Dockerfile
M
MRXLT 已提交
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

```bash
FROM paddlepaddle/paddle_manylinux_devel:cuda9.0_cudnn7
RUN yum -y install git openssl-devel curl-devel bzip2-devel \
    && wget https://dl.google.com/go/go1.12.12.linux-amd64.tar.gz \
    && tar -xzvf go1.12.12.linux-amd64.tar.gz \
    && rm -rf /usr/local/go \
    && mv go /usr/local/go \
    && rm go1.12.12.linux-amd64.tar.gz \
    && echo "GOROOT=/usr/local/go" >> /root/.bashrc \
    && echo "GOPATH=$HOME/go" >> /root/.bashrc \
    && echo "PATH=$PATH:$GOROOT/bin" >> /root/.bashrc
```



## 使用方法

M
fix md  
MRXLT 已提交
56
### 构建Docker镜像
M
MRXLT 已提交
57

M
MRXLT 已提交
58
建立新目录,复制Dockerfile内容到目录下Dockerfile文件
M
MRXLT 已提交
59 60 61 62 63 64 65 66 67 68 69 70 71

执行

```bash
docker build -t serving_compile:cpu .
```

或者

```bash
docker build -t serving_compile:cuda9 .
```

M
MRXLT 已提交
72
## 进入Docker
M
MRXLT 已提交
73 74 75 76 77 78 79 80 81 82 83 84

CPU版本请执行

```bash
docker run -it serving_compile:cpu bash
```

GPU版本请执行

```bash
docker run -it --runtime=nvidia -it serving_compile:cuda9 bash
```
M
add env  
MRXLT 已提交
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

## 预编译文件可执行环境列表

| Docker预编译版本可运行环境 |
| -------------------------- |
| Centos6                    |
| Centos7                    |
| Ubuntu16.04                |
| Ubuntu 18.04               |



| GPU Docker预编译版本支持的CUDA版本 |
| ---------------------------------- |
| cuda8_cudnn7                       |
| cuda9_cudnn7                       |
| cuda10_cudnn7                      |

**备注:** 
+ 若执行预编译版本出现找不到libcrypto.so.10、libssl.so.10的情况,可以将Docker环境中的/usr/lib64/libssl.so.10与/usr/lib64/libcrypto.so.10复制到可执行文件输在目录。
+ CPU预编译版本仅可在CPU机器上执行,GPU预编译版本仅可在GPU机器上执行