blob: c26c9a2826ea15ae42913b1e9bc0da0576e59b37 [file] [log] [blame]
Jan Tattermuscha98a2ad2016-09-09 12:42:32 +02001# Copyright 2015, Google Inc.
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met:
7#
8# * Redistributions of source code must retain the above copyright
9# notice, this list of conditions and the following disclaimer.
10# * Redistributions in binary form must reproduce the above
11# copyright notice, this list of conditions and the following disclaimer
12# in the documentation and/or other materials provided with the
13# distribution.
14# * Neither the name of Google Inc. nor the names of its
15# contributors may be used to endorse or promote products derived from
16# this software without specific prior written permission.
17#
18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30FROM debian:jessie
31
32# Install Git and basic packages.
33RUN apt-get update && apt-get install -y \
34 autoconf \
35 autotools-dev \
36 build-essential \
37 bzip2 \
38 ccache \
39 curl \
40 gcc \
41 gcc-multilib \
42 git \
43 golang \
44 gyp \
45 lcov \
46 libc6 \
47 libc6-dbg \
48 libc6-dev \
49 libgtest-dev \
50 libtool \
51 make \
52 perl \
53 strace \
54 python-dev \
55 python-setuptools \
56 python-yaml \
57 telnet \
58 unzip \
59 wget \
60 zip && apt-get clean
61
62#================
63# Build profiling
64RUN apt-get update && apt-get install -y time && apt-get clean
65
66#====================
67# Python dependencies
68
69# Install dependencies
70
71RUN apt-get update && apt-get install -y \
72 python-all-dev \
73 python3-all-dev \
74 python-pip
75
76# Install Python packages from PyPI
77RUN pip install pip --upgrade
78RUN pip install virtualenv
Mehrdad Afshari9b3c73d2017-03-07 22:10:15 +000079RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.2.0 six==1.10.0
Jan Tattermuscha98a2ad2016-09-09 12:42:32 +020080
81#================
82# C# dependencies
83
84# Update to a newer version of mono
85RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
86RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list
87RUN echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
88RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
89RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
90
91# Install dependencies
92RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \
93 mono-devel \
94 ca-certificates-mono \
95 nuget \
96 && apt-get clean
97
98RUN nuget update -self
99
100# Install dotnet SDK based on https://www.microsoft.com/net/core#debian
101RUN apt-get update && apt-get install -y curl libunwind8 gettext
Jan Tattermuschbe2807d2017-03-09 10:15:41 +0100102# dotnet-dev-1.0.0-preview2-003121
103RUN curl -sSL -o dotnet100.tar.gz https://go.microsoft.com/fwlink/?LinkID=809130
104RUN mkdir -p /opt/dotnet && tar zxf dotnet100.tar.gz -C /opt/dotnet
105# dotnet-dev-1.0.1
106RUN curl -sSL -o dotnet101.tar.gz https://go.microsoft.com/fwlink/?LinkID=843453
107RUN mkdir -p /opt/dotnet && tar zxf dotnet101.tar.gz -C /opt/dotnet
Jan Tattermuscha98a2ad2016-09-09 12:42:32 +0200108RUN ln -s /opt/dotnet/dotnet /usr/local/bin
109
110# Trigger the population of the local package cache
111ENV NUGET_XMLDOC_MODE skip
112RUN mkdir warmup \
113 && cd warmup \
114 && dotnet new \
115 && cd .. \
116 && rm -rf warmup
117
118# Prepare ccache
119RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
120RUN ln -s /usr/bin/ccache /usr/local/bin/g++
121RUN ln -s /usr/bin/ccache /usr/local/bin/cc
122RUN ln -s /usr/bin/ccache /usr/local/bin/c++
123RUN ln -s /usr/bin/ccache /usr/local/bin/clang
124RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
125
126
127RUN mkdir /var/local/jenkins
128
129# Define the default command.
130CMD ["bash"]