Dockerfile.gccgo
2c53643b
 # This file describes the standard way to build Docker, using docker
 #
 # Usage:
 #
 # # Assemble the full dev environment. This is slow the first time.
 # docker build -t docker -f Dockerfile.gccgo .
 #
 
40b21745
 FROM gcc:6.1
2c53643b
 
 # Packaged dependencies
 RUN apt-get update && apt-get install -y \
 	apparmor \
 	aufs-tools \
 	btrfs-tools \
 	build-essential \
 	curl \
 	git \
 	iptables \
50814a2b
 	jq \
2c53643b
 	net-tools \
 	libapparmor-dev \
 	libcap-dev \
 	libsqlite3-dev \
 	mercurial \
f27b5dda
 	net-tools \
2c53643b
 	parallel \
92756bdc
 	python-dev \
2c53643b
 	python-mock \
 	python-pip \
 	python-websocket \
 	--no-install-recommends
 
 # Get lvm2 source for compiling statically
 RUN git clone -b v2_02_103 https://git.fedorahosted.org/git/lvm2.git /usr/local/lvm2
 # see https://git.fedorahosted.org/cgit/lvm2.git/refs/tags for release tags
 
 # Compile and install lvm2
 RUN cd /usr/local/lvm2 \
 	&& ./configure --enable-static_link \
 	&& make device-mapper \
 	&& make install_device-mapper
 # see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
 
9b8d3286
 # install seccomp: the version shipped in jessie is too old
d864a146
 ENV SECCOMP_VERSION v2.3.1
8ce5d054
 RUN set -x \
     && export SECCOMP_PATH=$(mktemp -d) \
     && git clone https://github.com/seccomp/libseccomp.git "$SECCOMP_PATH" \
     && ( \
         cd "$SECCOMP_PATH" \
         && git checkout "$SECCOMP_VERSION" \
         && ./autogen.sh \
         && ./configure --prefix=/usr \
         && make \
         && make install \
     ) \
     && rm -rf "$SECCOMP_PATH"
 
2c53643b
 ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
 
 # Get the "docker-py" source so we can run their integration tests
e6590b5f
 ENV DOCKER_PY_COMMIT 7befe694bd21e3c54bb1d7825270ea4bd6864c13
2c53643b
 RUN git clone https://github.com/docker/docker-py.git /docker-py \
 	&& cd /docker-py \
 	&& git checkout -q $DOCKER_PY_COMMIT
 
 # Add an unprivileged user to be used for tests which need it
 RUN groupadd -r docker
 RUN useradd --create-home --gid docker unprivilegeduser
 
 VOLUME /var/lib/docker
 WORKDIR /go/src/github.com/docker/docker
8ce5d054
 ENV DOCKER_BUILDTAGS apparmor seccomp selinux
2c53643b
 
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
5199e396
 ENV CONTAINERD_COMMIT 1b3a81545ca79456086dc2aa424357be98b962ee
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
 
2c53643b
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
 ENTRYPOINT ["hack/dind"]
 
 # Upload docker source
 COPY . /go/src/github.com/docker/docker