# docker build -t docker:simple -f Dockerfile.simple .
# docker run --rm docker:simple hack/make.sh dynbinary
# 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

# 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 \
		curl \
		gcc \
		git \
		golang \
		libdevmapper-dev \
		libsqlite3-dev \
		\
		ca-certificates \
		e2fsprogs \
		iptables \
		procps \
		xfsprogs \
		xz-utils \
		\
		aufs-tools \
	&& rm -rf /var/lib/apt/lists/*

# Install runc
ENV RUNC_COMMIT baf6536d6259209c3edfa2b22237af82942d3dfa
RUN set -x \
	&& export GOPATH="$(mktemp -d)" \
	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
	&& git checkout -q "$RUNC_COMMIT" \
	&& make static BUILDTAGS="seccomp apparmor selinux" \
	&& cp runc /usr/local/bin/docker-runc

# Install containerd
ENV CONTAINERD_COMMIT v0.2.1
RUN set -x \
	&& export GOPATH="$(mktemp -d)" \
	&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
	&& cd "$GOPATH/src/github.com/docker/containerd" \
	&& git checkout -q "$CONTAINERD_COMMIT" \
	&& make static \
	&& cp bin/containerd /usr/local/bin/docker-containerd \
	&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
	&& cp bin/ctr /usr/local/bin/docker-containerd-ctr

ENV AUTO_GOPATH 1
WORKDIR /usr/src/docker
COPY . /usr/src/docker