Tizen_4.0 base
[platform/upstream/docker-engine.git] / Dockerfile.simple
1 # docker build -t docker:simple -f Dockerfile.simple .
2 # docker run --rm docker:simple hack/make.sh dynbinary
3 # docker run --rm --privileged docker:simple hack/dind hack/make.sh test-unit
4 # docker run --rm --privileged -v /var/lib/docker docker:simple hack/dind hack/make.sh dynbinary test-integration-cli
5
6 # This represents the bare minimum required to build and test Docker.
7
8 FROM debian:jessie
9
10 # allow replacing httpredir or deb mirror
11 ARG APT_MIRROR=deb.debian.org
12 RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
13
14 # Compile and runtime deps
15 # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
16 # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
17 RUN apt-get update && apt-get install -y --no-install-recommends \
18                 btrfs-tools \
19                 build-essential \
20                 curl \
21                 cmake \
22                 gcc \
23                 git \
24                 libapparmor-dev \
25                 libdevmapper-dev \
26                 ca-certificates \
27                 e2fsprogs \
28                 iptables \
29                 procps \
30                 xfsprogs \
31                 xz-utils \
32                 \
33                 aufs-tools \
34                 vim-common \
35         && rm -rf /var/lib/apt/lists/*
36
37 # Install seccomp: the version shipped upstream is too old
38 ENV SECCOMP_VERSION 2.3.2
39 RUN set -x \
40         && export SECCOMP_PATH="$(mktemp -d)" \
41         && curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
42                 | tar -xzC "$SECCOMP_PATH" --strip-components=1 \
43         && ( \
44                 cd "$SECCOMP_PATH" \
45                 && ./configure --prefix=/usr/local \
46                 && make \
47                 && make install \
48                 && ldconfig \
49         ) \
50         && rm -rf "$SECCOMP_PATH"
51
52 # Install Go
53 # IMPORTANT: If the version of Go is updated, the Windows to Linux CI machines
54 #            will need updating, to avoid errors. Ping #docker-maintainers on IRC
55 #            with a heads-up.
56 ENV GO_VERSION 1.8.3
57 RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" \
58         | tar -xzC /usr/local
59 ENV PATH /go/bin:/usr/local/go/bin:$PATH
60 ENV GOPATH /go
61 ENV CGO_LDFLAGS -L/lib
62
63 # Install runc, containerd, tini and docker-proxy
64 # Please edit hack/dockerfile/install-binaries.sh to update them.
65 COPY hack/dockerfile/binaries-commits /tmp/binaries-commits
66 COPY hack/dockerfile/install-binaries.sh /tmp/install-binaries.sh
67 RUN /tmp/install-binaries.sh runc containerd tini proxy dockercli
68 ENV PATH=/usr/local/cli:$PATH
69
70 ENV AUTO_GOPATH 1
71 WORKDIR /usr/src/docker
72 COPY . /usr/src/docker