Dockerfile.simple 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # docker build -t docker:simple -f Dockerfile.simple .
  2. # docker run --rm docker:simple hack/make.sh dynbinary
  3. # docker run --rm --privileged docker:simple hack/dind hack/make.sh test-unit
  4. # docker run --rm --privileged -v /var/lib/docker docker:simple hack/dind hack/make.sh dynbinary test-integration-cli
  5. # This represents the bare minimum required to build and test Docker.
  6. FROM debian:jessie
  7. # allow replacing httpredir or deb mirror
  8. ARG APT_MIRROR=deb.debian.org
  9. RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
  10. # Compile and runtime deps
  11. # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
  12. # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
  13. RUN apt-get update && apt-get install -y --no-install-recommends \
  14. btrfs-tools \
  15. build-essential \
  16. curl \
  17. cmake \
  18. gcc \
  19. git \
  20. libapparmor-dev \
  21. libdevmapper-dev \
  22. libsqlite3-dev \
  23. \
  24. ca-certificates \
  25. e2fsprogs \
  26. iptables \
  27. procps \
  28. xfsprogs \
  29. xz-utils \
  30. \
  31. aufs-tools \
  32. vim-common \
  33. && rm -rf /var/lib/apt/lists/*
  34. # Install seccomp: the version shipped in trusty is too old
  35. ENV SECCOMP_VERSION 2.3.1
  36. RUN set -x \
  37. && export SECCOMP_PATH="$(mktemp -d)" \
  38. && curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
  39. | tar -xzC "$SECCOMP_PATH" --strip-components=1 \
  40. && ( \
  41. cd "$SECCOMP_PATH" \
  42. && ./configure --prefix=/usr/local \
  43. && make \
  44. && make install \
  45. && ldconfig \
  46. ) \
  47. && rm -rf "$SECCOMP_PATH"
  48. # Install Go
  49. # IMPORTANT: If the version of Go is updated, the Windows to Linux CI machines
  50. # will need updating, to avoid errors. Ping #docker-maintainers on IRC
  51. # with a heads-up.
  52. ENV GO_VERSION 1.7.3
  53. RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" \
  54. | tar -xzC /usr/local
  55. ENV PATH /go/bin:/usr/local/go/bin:$PATH
  56. ENV GOPATH /go
  57. ENV CGO_LDFLAGS -L/lib
  58. # Install runc, containerd, tini and docker-proxy
  59. # Please edit hack/dockerfile/install-binaries.sh to update them.
  60. COPY hack/dockerfile/binaries-commits /tmp/binaries-commits
  61. COPY hack/dockerfile/install-binaries.sh /tmp/install-binaries.sh
  62. RUN /tmp/install-binaries.sh runc containerd tini proxy
  63. ENV AUTO_GOPATH 1
  64. WORKDIR /usr/src/docker
  65. COPY . /usr/src/docker