7a6fbfee7f4afdc3059a16a0539b17f14f4e5257
[platform/upstream/grpc.git] / tools / dockerfile / test / sanity / Dockerfile
1 # Copyright 2015 gRPC authors.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #     http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 FROM debian:stretch
16   
17 # Install Git and basic packages.
18 RUN apt-get update && apt-get install -y \
19   autoconf \
20   autotools-dev \
21   build-essential \
22   bzip2 \
23   ccache \
24   curl \
25   dnsutils \
26   gcc \
27   gcc-multilib \
28   git \
29   golang \
30   gyp \
31   lcov \
32   libc6 \
33   libc6-dbg \
34   libc6-dev \
35   libgtest-dev \
36   libtool \
37   make \
38   perl \
39   strace \
40   python-dev \
41   python-setuptools \
42   python-yaml \
43   telnet \
44   unzip \
45   wget \
46   zip && apt-get clean
47
48 #================
49 # Build profiling
50 RUN apt-get update && apt-get install -y time && apt-get clean
51
52 # Google Cloud platform API libraries
53 RUN apt-get update && apt-get install -y python-pip && apt-get clean
54 RUN pip install --upgrade google-api-python-client oauth2client
55
56 # Install Python 2.7
57 RUN apt-get update && apt-get install -y python2.7 python-all-dev
58 RUN curl https://bootstrap.pypa.io/get-pip.py | python2.7
59
60 # Add Debian 'testing' repository
61 RUN echo 'deb http://ftp.de.debian.org/debian testing main' >> /etc/apt/sources.list
62 RUN echo 'APT::Default-Release "stable";' | tee -a /etc/apt/apt.conf.d/00local
63
64
65 RUN mkdir /var/local/jenkins
66
67 # Define the default command.
68 CMD ["bash"]
69
70 #=================
71 # C++ dependencies
72 RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
73
74 #========================
75 # Sanity test dependencies
76 RUN apt-get update && apt-get -t testing install -y python3.7 python3-all-dev
77 RUN curl https://bootstrap.pypa.io/get-pip.py | python3.7
78 # Make Python 3.7 the default Python 3 version
79 RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1
80 RUN apt-get update && apt-get install -y \
81       autoconf \
82       automake \
83       libtool \
84       curl \
85       shellcheck
86 RUN python2 -m pip install simplejson mako virtualenv lxml
87 RUN python3 -m pip install simplejson mako virtualenv lxml
88
89 RUN apt-get update && apt-get -y install wget xz-utils
90 RUN wget http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
91 RUN tar xf clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
92 RUN ln -s /clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang-format /usr/local/bin/clang-format
93 ENV CLANG_FORMAT=clang-format
94 RUN ln -s /clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang-tidy /usr/local/bin/clang-tidy
95 ENV CLANG_TIDY=clang-tidy
96
97 #========================
98 # Bazel installation
99
100 RUN apt-get update && apt-get install -y wget && apt-get clean
101 RUN wget https://github.com/bazelbuild/bazel/releases/download/0.20.0/bazel-0.20.0-installer-linux-x86_64.sh && \
102   bash ./bazel-0.20.0-installer-linux-x86_64.sh && \
103   rm bazel-0.20.0-installer-linux-x86_64.sh
104
105
106 # Define the default command.
107 CMD ["bash"]