Dockerfile 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # Copyright 2021 the 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. FROM debian:buster
  15. # Install Git and basic packages.
  16. RUN apt-get update && apt-get install -y \
  17. autoconf \
  18. autotools-dev \
  19. build-essential \
  20. bzip2 \
  21. ccache \
  22. curl \
  23. dnsutils \
  24. gcc \
  25. gcc-multilib \
  26. git \
  27. golang \
  28. gyp \
  29. lcov \
  30. libc6 \
  31. libc6-dbg \
  32. libc6-dev \
  33. libgtest-dev \
  34. libtool \
  35. make \
  36. perl \
  37. strace \
  38. python-dev \
  39. python-setuptools \
  40. python-yaml \
  41. telnet \
  42. unzip \
  43. wget \
  44. zip && apt-get clean
  45. #================
  46. # Build profiling
  47. RUN apt-get update && apt-get install -y time && apt-get clean
  48. #====================
  49. # Python dependencies
  50. # Install dependencies
  51. RUN apt-get update && apt-get install -y \
  52. python-all-dev \
  53. python3-all-dev \
  54. python-setuptools
  55. # Install Python packages from PyPI
  56. RUN curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2.7
  57. RUN pip install --upgrade pip==19.3.1
  58. RUN pip install virtualenv==16.7.9
  59. RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.5.2.post1 six==1.15.0 twisted==17.5.0
  60. # Google Cloud platform API libraries
  61. RUN pip install --upgrade google-auth==1.24.0 google-api-python-client==1.12.8 oauth2client==4.1.0
  62. #=================
  63. # C++ dependencies
  64. RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
  65. #=================
  66. # Install cmake
  67. # Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement.
  68. RUN apt-get update && apt-get install -y cmake && apt-get clean
  69. RUN mkdir /var/local/jenkins
  70. # Install openssl 1.0.2 from source
  71. RUN apt-get update && apt-get install -y build-essential zlib1g-dev
  72. RUN cd /tmp && \
  73. wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz && \
  74. tar -xf openssl-1.0.2u.tar.gz && \
  75. cd openssl-1.0.2u && \
  76. ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib && \
  77. make -j 4 && \
  78. make install && \
  79. rm -rf /tmp/openssl-1.0.2u*
  80. ENV OPENSSL_ROOT_DIR=/usr/local/ssl
  81. # Define the default command.
  82. CMD ["bash"]