Dockerfile.simple 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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
  5. # This represents the bare minimum required to build and test Docker.
  6. ARG GO_VERSION=1.19.1
  7. ARG BASE_DEBIAN_DISTRO="bullseye"
  8. ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO}"
  9. FROM ${GOLANG_IMAGE}
  10. ENV GO111MODULE=off
  11. # allow replacing httpredir or deb mirror
  12. ARG APT_MIRROR=deb.debian.org
  13. RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
  14. # Compile and runtime deps
  15. # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
  16. # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
  17. RUN apt-get update && apt-get install -y --no-install-recommends \
  18. build-essential \
  19. curl \
  20. cmake \
  21. gcc \
  22. git \
  23. libapparmor-dev \
  24. libbtrfs-dev \
  25. libdevmapper-dev \
  26. libseccomp-dev \
  27. ca-certificates \
  28. e2fsprogs \
  29. iptables \
  30. pkg-config \
  31. pigz \
  32. procps \
  33. xfsprogs \
  34. xz-utils \
  35. \
  36. vim-common \
  37. && rm -rf /var/lib/apt/lists/*
  38. # Install runc, containerd, tini and docker-proxy
  39. # Please edit hack/dockerfile/install/<name>.installer to update them.
  40. COPY hack/dockerfile/install hack/dockerfile/install
  41. RUN for i in runc containerd tini proxy dockercli; \
  42. do hack/dockerfile/install/install.sh $i; \
  43. done
  44. ENV PATH=/usr/local/cli:$PATH
  45. ENV AUTO_GOPATH 1
  46. WORKDIR /usr/src/docker
  47. COPY . /usr/src/docker