mirror of https://github.com/docker/docs.git
				
				
				
			
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
# 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 \
 | 
						|
		build-essential \
 | 
						|
		curl \
 | 
						|
		gcc \
 | 
						|
		git \
 | 
						|
		libapparmor-dev \
 | 
						|
		libdevmapper-dev \
 | 
						|
		libsqlite3-dev \
 | 
						|
		\
 | 
						|
		ca-certificates \
 | 
						|
		e2fsprogs \
 | 
						|
		iptables \
 | 
						|
		procps \
 | 
						|
		xfsprogs \
 | 
						|
		xz-utils \
 | 
						|
		\
 | 
						|
		aufs-tools \
 | 
						|
	&& rm -rf /var/lib/apt/lists/*
 | 
						|
 | 
						|
# install seccomp: the version shipped in trusty is too old
 | 
						|
ENV SECCOMP_VERSION 2.3.1
 | 
						|
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.
 | 
						|
ENV GO_VERSION 1.6.3
 | 
						|
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
 | 
						|
 | 
						|
# Install runc
 | 
						|
ENV RUNC_COMMIT cc29e3dded8e27ba8f65738f40d251c885030a28
 | 
						|
RUN set -x \
 | 
						|
	&& export GOPATH="$(mktemp -d)" \
 | 
						|
	&& git clone https://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 \
 | 
						|
	&& rm -rf "$GOPATH"
 | 
						|
 | 
						|
# Install containerd
 | 
						|
ENV CONTAINERD_COMMIT v0.2.4
 | 
						|
RUN set -x \
 | 
						|
	&& export GOPATH="$(mktemp -d)" \
 | 
						|
	&& git clone https://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 \
 | 
						|
	&& rm -rf "$GOPATH"
 | 
						|
 | 
						|
ENV AUTO_GOPATH 1
 | 
						|
WORKDIR /usr/src/docker
 | 
						|
COPY . /usr/src/docker
 |