PageRenderTime 78ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/build/docker/ubuntu/Dockerfile

https://gitlab.com/peter.tiedemann/thrift
Dockerfile | 191 lines | 130 code | 25 blank | 36 comment | 40 complexity | 589b38ed9aa210e2d7714e732edf5363 MD5 | raw file
  1. # Licensed under the Apache License, Version 2.0 (the "License");
  2. # you may not use this file except in compliance with the License.
  3. # You may obtain a copy of the License at
  4. #
  5. # http://www.apache.org/licenses/LICENSE-2.0
  6. #
  7. # Unless required by applicable law or agreed to in writing, software
  8. # distributed under the License is distributed on an "AS IS" BASIS,
  9. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. # See the License for the specific language governing permissions and
  11. # limitations under the License.
  12. # Apache Thrift Docker build environment for Centos
  13. #
  14. # Known missing client libraries:
  15. # - None
  16. FROM ubuntu:trusty
  17. MAINTAINER Apache Thrift <dev@thrift.apache.org>
  18. ENV DEBIAN_FRONTEND noninteractive
  19. # General dependencies
  20. RUN apt-get update && apt-get install -y \
  21. apt-transport-https \
  22. automake \
  23. bison \
  24. clang \
  25. cmake \
  26. debhelper \
  27. flex \
  28. g++ \
  29. git \
  30. libtool \
  31. make \
  32. pkg-config
  33. # C++ dependencies
  34. RUN apt-get update && apt-get install -y \
  35. libboost-dev \
  36. libboost-filesystem-dev \
  37. libboost-program-options-dev \
  38. libboost-system-dev \
  39. libboost-test-dev \
  40. libboost-thread-dev \
  41. libevent-dev \
  42. libqt4-dev \
  43. libssl-dev
  44. # Java dependencies
  45. RUN apt-get update && apt-get install -y \
  46. ant \
  47. openjdk-7-jdk \
  48. maven \
  49. && update-java-alternatives -s java-1.7.0-openjdk-amd64
  50. # Python dependencies
  51. RUN apt-get update && apt-get install -y \
  52. python-all \
  53. python-all-dev \
  54. python-all-dbg \
  55. python-setuptools \
  56. python-support \
  57. python-twisted \
  58. python-zope.interface \
  59. python-six \
  60. python3-six
  61. # Ruby dependencies
  62. RUN apt-get update && apt-get install -y \
  63. ruby \
  64. ruby-dev \
  65. && gem install bundler rake
  66. # Perl dependencies
  67. RUN apt-get update && apt-get install -y \
  68. libbit-vector-perl \
  69. libclass-accessor-class-perl \
  70. libcrypt-ssleay-perl \
  71. libio-socket-ssl-perl \
  72. libnet-ssleay-perl
  73. # Php dependencies
  74. RUN apt-get update && apt-get install -y \
  75. php5 \
  76. php5-dev \
  77. php5-cli \
  78. php-pear \
  79. re2c \
  80. phpunit
  81. # GlibC dependencies
  82. RUN apt-get update && apt-get install -y libglib2.0-dev
  83. # Erlang dependencies
  84. RUN echo 'deb http://packages.erlang-solutions.com/debian trusty contrib' > /etc/apt/sources.list.d/erlang_solutions.list && \
  85. curl -sSL http://packages.erlang-solutions.com/debian/erlang_solutions.asc | apt-key add - && \
  86. apt-get update && apt-get install -y \
  87. erlang-base \
  88. erlang-eunit \
  89. erlang-dev \
  90. erlang-tools \
  91. rebar
  92. # Go dependencies
  93. RUN curl -sSL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz
  94. ENV PATH /usr/local/go/bin:$PATH
  95. # Haskell dependencies
  96. RUN apt-get update && apt-get install -y \
  97. ghc \
  98. cabal-install \
  99. libghc-binary-dev \
  100. libghc-network-dev \
  101. libghc-http-dev \
  102. libghc-hashable-dev \
  103. libghc-unordered-containers-dev \
  104. libghc-vector-dev
  105. # Haxe
  106. RUN apt-get update && apt-get install -y \
  107. neko \
  108. neko-dev \
  109. libneko0 \
  110. && mkdir -p /tmp/haxe /usr/lib/haxe && \
  111. curl http://haxe.org/website-content/downloads/3.2.0/downloads/haxe-3.2.0-linux64.tar.gz -o /tmp/haxe/haxe-3.2.0-linux64.tar.gz && \
  112. tar -xvzf /tmp/haxe/haxe-3.2.0-linux64.tar.gz -C /usr/lib/haxe --strip-components=1 && \
  113. ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
  114. ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
  115. mkdir -p /usr/lib/haxe/lib && \
  116. chmod -R 777 /usr/lib/haxe/lib && \
  117. haxelib setup /usr/lib/haxe/lib && \
  118. haxelib install hxcpp && \
  119. rm -rf /tmp/haxe
  120. # Node.js dependencies
  121. RUN apt-get update && apt-get install -y \
  122. nodejs \
  123. nodejs-dev \
  124. nodejs-legacy \
  125. npm
  126. # CSharp dependencies
  127. RUN apt-get update && apt-get install -y \
  128. libmono-system-web2.0-cil \
  129. mono-complete \
  130. mono-devel \
  131. mono-gmcs \
  132. mono-xbuild
  133. # D dependencies
  134. # THRIFT-2916: DMD pinned to 2.065.0-0 due to regression in 2.066
  135. # THRIFT-3253: DMD pinned to 2.065.0-0 due to deprecations 2.067.1
  136. RUN apt-get update && apt-get install -y \
  137. gcc-multilib \
  138. xdg-utils \
  139. && curl -sSL http://downloads.dlang.org/releases/2.x/2.065.0/dmd_2.065.0-0_amd64.deb -o /tmp/dmd_2.065.0-0_amd64.deb && \
  140. dpkg -i /tmp/dmd_2.065.0-0_amd64.deb && \
  141. rm /tmp/dmd_2.065.0-0_amd64.deb
  142. # Dart dependencies
  143. RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
  144. curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \
  145. apt-get update && apt-get install -y dart
  146. ENV PATH /usr/lib/dart/bin:$PATH
  147. # Lua dependencies
  148. RUN apt-get update && apt-get install -y \
  149. lua5.2 \
  150. lua5.2-dev
  151. # MinGW dependencies
  152. RUN apt-get update && apt-get install -y \
  153. mingw32 \
  154. mingw32-binutils \
  155. mingw32-runtime \
  156. nsis
  157. # Clean up
  158. RUN apt-get clean && \
  159. rm -rf /var/cache/apt/* && \
  160. rm -rf /var/lib/apt/lists/* && \
  161. rm -rf /tmp/* && \
  162. rm -rf /var/tmp/*
  163. ENV THRIFT_ROOT /thrift
  164. RUN mkdir -p $THRIFT_ROOT/src
  165. COPY scripts $THRIFT_ROOT
  166. WORKDIR $THRIFT_ROOT/src