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 .
#
|
fab75bff |
FROM gcc:5.3 |
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 |
68bda672 |
ENV SECCOMP_VERSION v2.3.0 |
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 |
db41c5f5 |
ENV DOCKER_PY_COMMIT e2878cbcc3a7eef99917adc1be252800b0e41ece |
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 |
61c0f4bc |
ENV RUNC_COMMIT baf6536d6259209c3edfa2b22237af82942d3dfa |
9c4570a9 |
RUN set -x \
&& export GOPATH="$(mktemp -d)" \ |
009399dc |
&& git clone git://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" \
&& cp runc /usr/local/bin/docker-runc |
9c4570a9 |
# Install containerd |
c3e391f7 |
ENV CONTAINERD_COMMIT 9dc2b3273db42c75368988a3885a3afd770069d9 |
9c4570a9 |
RUN set -x \
&& export GOPATH="$(mktemp -d)" \ |
009399dc |
&& git clone git://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 \
&& cp bin/ctr /usr/local/bin/docker-containerd-ctr |
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 |