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 |