Dockerfile.simple
5118f143
 # docker build -t docker:simple -f Dockerfile.simple .
 # docker run --rm docker:simple hack/make.sh dynbinary
ece4b5bd
 # docker run --rm --privileged docker:simple hack/dind hack/make.sh test-unit
 # docker run --rm --privileged -v /var/lib/docker docker:simple hack/dind hack/make.sh dynbinary test-integration-cli
5118f143
 
 # This represents the bare minimum required to build and test Docker.
 
 FROM debian:jessie
 
 # compile and runtime deps
 # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
 # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
 RUN apt-get update && apt-get install -y --no-install-recommends \
 		btrfs-tools \
4bf770a4
 		build-essential \
b5763f8f
 		curl \
5118f143
 		gcc \
 		git \
4bf770a4
 		libapparmor-dev \
5118f143
 		libdevmapper-dev \
 		libsqlite3-dev \
 		\
 		ca-certificates \
 		e2fsprogs \
 		iptables \
 		procps \
2b766a45
 		xfsprogs \
5118f143
 		xz-utils \
 		\
ece4b5bd
 		aufs-tools \
5118f143
 	&& rm -rf /var/lib/apt/lists/*
 
4bf770a4
 # install seccomp: the version shipped in trusty is too old
d864a146
 ENV SECCOMP_VERSION 2.3.1
4bf770a4
 RUN set -x \
 	&& export SECCOMP_PATH="$(mktemp -d)" \
 	&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
 		| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
 	&& ( \
 		cd "$SECCOMP_PATH" \
 		&& ./configure --prefix=/usr/local \
 		&& make \
 		&& make install \
 		&& ldconfig \
 	) \
 	&& rm -rf "$SECCOMP_PATH"
 
 # Install Go
 # IMPORTANT: If the version of Go is updated, the Windows to Linux CI machines
 #            will need updating, to avoid errors. Ping #docker-maintainers on IRC
 #            with a heads-up.
47a16dbe
 ENV GO_VERSION 1.6.3
4bf770a4
 RUN curl -fsSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" \
 	| tar -xzC /usr/local
 ENV PATH /go/bin:/usr/local/go/bin:$PATH
 ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
 ENV CGO_LDFLAGS -L/lib
 
9c4570a9
 # Install runc
9eb6e049
 ENV RUNC_COMMIT cc29e3dded8e27ba8f65738f40d251c885030a28
9c4570a9
 RUN set -x \
 	&& export GOPATH="$(mktemp -d)" \
9eb6e049
 	&& git clone https://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
9c4570a9
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
 	&& git checkout -q "$RUNC_COMMIT" \
009399dc
 	&& make static BUILDTAGS="seccomp apparmor selinux" \
e67c758e
 	&& cp runc /usr/local/bin/docker-runc \
 	&& rm -rf "$GOPATH"
9c4570a9
 
 # Install containerd
33a8310b
 ENV CONTAINERD_COMMIT 0ac3cd1be170d180b2baed755e8f0da547ceb267
9c4570a9
 RUN set -x \
 	&& export GOPATH="$(mktemp -d)" \
a7e9bf6c
 	&& git clone https://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
9c4570a9
 	&& cd "$GOPATH/src/github.com/docker/containerd" \
 	&& git checkout -q "$CONTAINERD_COMMIT" \
009399dc
 	&& make static \
 	&& cp bin/containerd /usr/local/bin/docker-containerd \
 	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
e67c758e
 	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr \
 	&& rm -rf "$GOPATH"
9c4570a9
 
5118f143
 ENV AUTO_GOPATH 1
 WORKDIR /usr/src/docker
 COPY . /usr/src/docker