From 9e212fb72fc07d03d9612fbff6c3593cd4220ff4 Mon Sep 17 00:00:00 2001 From: Nitin Gujral Date: Wed, 14 Feb 2018 13:08:35 -0800 Subject: [PATCH] Install Docker 17.09 in all the curated images --- ubuntu/android-java-8/24.4.1/Dockerfile | 63 +++++++++++++++---- .../24.4.1/dockerd-entrypoint.sh | 23 +++++++ ubuntu/docker/17.09.0/Dockerfile | 46 +++++++------- ubuntu/dot-net/core-1/Dockerfile | 43 +++++++++++-- ubuntu/dot-net/core-1/dockerd-entrypoint.sh | 23 +++++++ ubuntu/dot-net/core-2/Dockerfile | 43 +++++++++++-- ubuntu/dot-net/core-2/dockerd-entrypoint.sh | 23 +++++++ ubuntu/golang/1.7.3/Dockerfile | 43 +++++++++++-- ubuntu/golang/1.7.3/dockerd-entrypoint.sh | 23 +++++++ ubuntu/java/openjdk-8/Dockerfile | 43 +++++++++++-- ubuntu/java/openjdk-8/dockerd-entrypoint.sh | 23 +++++++ ubuntu/nodejs/4.3.2/Dockerfile | 43 +++++++++++-- ubuntu/nodejs/4.3.2/dockerd-entrypoint.sh | 23 +++++++ ubuntu/nodejs/4.4.7/Dockerfile | 43 +++++++++++-- ubuntu/nodejs/4.4.7/dockerd-entrypoint.sh | 23 +++++++ ubuntu/nodejs/6.3.1/Dockerfile | 43 +++++++++++-- ubuntu/nodejs/6.3.1/dockerd-entrypoint.sh | 23 +++++++ ubuntu/python/2.7.12/Dockerfile | 39 +++++++++++- ubuntu/python/2.7.12/dockerd-entrypoint.sh | 23 +++++++ ubuntu/python/3.3.6/Dockerfile | 39 +++++++++++- ubuntu/python/3.3.6/dockerd-entrypoint.sh | 23 +++++++ ubuntu/python/3.4.5/Dockerfile | 39 +++++++++++- ubuntu/python/3.4.5/dockerd-entrypoint.sh | 23 +++++++ ubuntu/python/3.5.2/Dockerfile | 39 +++++++++++- ubuntu/python/3.5.2/dockerd-entrypoint.sh | 23 +++++++ ubuntu/ruby/2.2.5/Dockerfile | 43 +++++++++++-- ubuntu/ruby/2.2.5/dockerd-entrypoint.sh | 23 +++++++ ubuntu/ruby/2.3.1/Dockerfile | 43 +++++++++++-- ubuntu/ruby/2.3.1/dockerd-entrypoint.sh | 23 +++++++ ubuntu/ubuntu-base/14.04/Dockerfile | 37 ++++++++++- .../ubuntu-base/14.04/dockerd-entrypoint.sh | 23 +++++++ 31 files changed, 947 insertions(+), 87 deletions(-) create mode 100755 ubuntu/android-java-8/24.4.1/dockerd-entrypoint.sh create mode 100755 ubuntu/dot-net/core-1/dockerd-entrypoint.sh create mode 100755 ubuntu/dot-net/core-2/dockerd-entrypoint.sh create mode 100755 ubuntu/golang/1.7.3/dockerd-entrypoint.sh create mode 100755 ubuntu/java/openjdk-8/dockerd-entrypoint.sh create mode 100755 ubuntu/nodejs/4.3.2/dockerd-entrypoint.sh create mode 100755 ubuntu/nodejs/4.4.7/dockerd-entrypoint.sh create mode 100755 ubuntu/nodejs/6.3.1/dockerd-entrypoint.sh create mode 100755 ubuntu/python/2.7.12/dockerd-entrypoint.sh create mode 100755 ubuntu/python/3.3.6/dockerd-entrypoint.sh create mode 100755 ubuntu/python/3.4.5/dockerd-entrypoint.sh create mode 100755 ubuntu/python/3.5.2/dockerd-entrypoint.sh create mode 100755 ubuntu/ruby/2.2.5/dockerd-entrypoint.sh create mode 100755 ubuntu/ruby/2.3.1/dockerd-entrypoint.sh create mode 100755 ubuntu/ubuntu-base/14.04/dockerd-entrypoint.sh diff --git a/ubuntu/android-java-8/24.4.1/Dockerfile b/ubuntu/android-java-8/24.4.1/Dockerfile index f8317990..8b9a71ef 100644 --- a/ubuntu/android-java-8/24.4.1/Dockerfile +++ b/ubuntu/android-java-8/24.4.1/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,38 +48,65 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + # Copy install tools COPY tools /opt/tools ENV ANDROID_HOME="/usr/local/android-sdk-linux" \ - JAVA_HOME="/usr/lib/jvm/java-8-oracle" \ - JDK_HOME="/usr/lib/jvm/java-8-oracle" \ + JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" \ + JDK_VERSION="8u141-b15-3~14.04" \ + JDK_HOME="/usr/lib/jvm/java-8-openjdk-amd64" \ + JRE_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre" \ JAVA_VERSION="8" \ - INSTALLED_GRADLE_VERSIONS="2.10 2.11 2.12 2.13 2.14.1" \ - GRADLE_VERSION="2.14.1" \ + INSTALLED_GRADLE_VERSIONS="2.14.1 3.5 4.0.2 4.1 4.2.1 4.3.1 4.4" \ + GRADLE_VERSION="4.4" \ ANDROID_TOOLS_VER="24.4.1" \ ANDROID_TOOLS_SHA1="725bb360f0f7d04eaccff5a2d57abdd49061326d" -ENV PATH="${PATH}:/opt/tools:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools" \ - JAVA_PACKAGE_VERSION="8u151-1~webupd8~0" +ENV PATH="${PATH}:/opt/tools:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools" # Install java8 RUN apt-get update \ && apt-get install -y software-properties-common=0.92.37.8 \ - && add-apt-repository -y ppa:webupd8team/java \ + && add-apt-repository -y ppa:openjdk-r/ppa \ && (echo oracle-java$JAVA_VERSION-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections) \ && apt-get update \ - && apt-get install -y oracle-java$JAVA_VERSION-installer=$JAVA_PACKAGE_VERSION \ + && apt-get -y install openjdk-$JAVA_VERSION-jdk=$JDK_VERSION \ + && update-ca-certificates -f \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && dpkg --add-architecture i386 \ && apt-get update && apt-get install -y --force-yes expect=5.45-* libc6-i386=2.19-* \ @@ -100,5 +135,7 @@ RUN apt-get update \ && tar -xzf /tmp/android-sdk.tgz -C /usr/local/ \ && chown -R root.root $ANDROID_HOME \ && ln -s $ANDROID_HOME/tools/android /usr/bin/android \ - && /opt/tools/android-accept-licenses.sh "android update sdk --all --no-ui --filter platform-tools,build-tools-25.0.0,android-23,android-24,android-25" \ + && /opt/tools/android-accept-licenses.sh "android update sdk --all --no-ui --filter platform-tools,build-tools-23.0.3,build-tools-24.0.3,build-tools-25.0.3,build-tools-26.0.2,android-23,android-24,android-25,android-26" \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/android-java-8/24.4.1/dockerd-entrypoint.sh b/ubuntu/android-java-8/24.4.1/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/android-java-8/24.4.1/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/docker/17.09.0/Dockerfile b/ubuntu/docker/17.09.0/Dockerfile index dca1c9fb..39ca2c99 100644 --- a/ubuntu/docker/17.09.0/Dockerfile +++ b/ubuntu/docker/17.09.0/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,36 +48,16 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean -RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ - && python /tmp/get-pip.py \ - && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - - -ENV DOCKER_BUCKET="download.docker.com" \ - DOCKER_VERSION="17.09.0-ce" \ - DOCKER_CHANNEL="stable" \ - DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ - DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ - DOCKER_COMPOSE_VERSION="1.16.1" - -COPY dockerd-entrypoint.sh /usr/local/bin/ - -# From the docker:17.09 +# Install Docker RUN set -x \ && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ && rm docker.tgz \ && docker -v \ -# From the docker dind 17.09 - && apt-get update && apt-get install -y --no-install-recommends \ - e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ # set up subuid/subgid so that "--userns-remap=default" works out-of-the-box && addgroup dockremap \ && useradd -g dockremap dockremap \ @@ -79,11 +67,21 @@ RUN set -x \ && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ # Ensure docker-compose works - && docker-compose version \ - && rm -rf /var/lib/apt/lists/* \ - && apt-get clean + && docker-compose version +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + +RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ + && python /tmp/get-pip.py \ + && pip install awscli==1.11.157 \ + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* VOLUME /var/lib/docker +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + + ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/dot-net/core-1/Dockerfile b/ubuntu/dot-net/core-1/Dockerfile index cfa9345e..16870560 100644 --- a/ubuntu/dot-net/core-1/Dockerfile +++ b/ubuntu/dot-net/core-1/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + # Install .NET CLI dependencies RUN apt-get update \ && apt-get install -y --no-install-recommends \ @@ -87,3 +120,5 @@ RUN mkdir warmup \ && cd .. \ && rm -rf warmup \ && rm -rf /tmp/NuGetScratch + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/dot-net/core-1/dockerd-entrypoint.sh b/ubuntu/dot-net/core-1/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/dot-net/core-1/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/dot-net/core-2/Dockerfile b/ubuntu/dot-net/core-2/Dockerfile index 0a1fed12..0236fa2e 100644 --- a/ubuntu/dot-net/core-2/Dockerfile +++ b/ubuntu/dot-net/core-2/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + # Install .NET CLI dependencies RUN apt-get update \ @@ -90,3 +123,5 @@ RUN mkdir warmup \ && cd .. \ && rm -rf warmup \ && rm -rf /tmp/NuGetScratch + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/dot-net/core-2/dockerd-entrypoint.sh b/ubuntu/dot-net/core-2/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/dot-net/core-2/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/golang/1.7.3/Dockerfile b/ubuntu/golang/1.7.3/Dockerfile index 9dac11bd..1910f9fa 100644 --- a/ubuntu/golang/1.7.3/Dockerfile +++ b/ubuntu/golang/1.7.3/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV GOLANG_VERSION="1.7.3" \ GOLANG_DOWNLOAD_SHA256="508028aac0654e993564b6e2014bf2d4a9751e3b286661b0b0040046cf18028e" \ @@ -68,3 +101,5 @@ RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" \ ENV PATH="$GOPATH/bin:/usr/local/go/bin:$PATH" WORKDIR $GOPATH + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/golang/1.7.3/dockerd-entrypoint.sh b/ubuntu/golang/1.7.3/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/golang/1.7.3/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/java/openjdk-8/Dockerfile b/ubuntu/java/openjdk-8/Dockerfile index 4a31cd80..6926ca04 100644 --- a/ubuntu/java/openjdk-8/Dockerfile +++ b/ubuntu/java/openjdk-8/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV JAVA_VERSION=8 \ JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" \ @@ -91,3 +124,5 @@ RUN apt-get update \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* COPY m2-settings.xml $MAVEN_CONFIG/settings.xml + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/java/openjdk-8/dockerd-entrypoint.sh b/ubuntu/java/openjdk-8/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/java/openjdk-8/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/nodejs/4.3.2/Dockerfile b/ubuntu/nodejs/4.3.2/Dockerfile index 741451e6..083323f5 100644 --- a/ubuntu/nodejs/4.3.2/Dockerfile +++ b/ubuntu/nodejs/4.3.2/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV NODE_VERSION="4.3.2" @@ -77,3 +110,5 @@ RUN wget "https://nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* CMD [ "node" ] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/nodejs/4.3.2/dockerd-entrypoint.sh b/ubuntu/nodejs/4.3.2/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/nodejs/4.3.2/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/nodejs/4.4.7/Dockerfile b/ubuntu/nodejs/4.4.7/Dockerfile index f9fd21d6..75c724bd 100644 --- a/ubuntu/nodejs/4.4.7/Dockerfile +++ b/ubuntu/nodejs/4.4.7/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV NODE_VERSION="4.4.7" @@ -77,3 +110,5 @@ RUN wget "https://nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* CMD [ "node" ] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/nodejs/4.4.7/dockerd-entrypoint.sh b/ubuntu/nodejs/4.4.7/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/nodejs/4.4.7/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/nodejs/6.3.1/Dockerfile b/ubuntu/nodejs/6.3.1/Dockerfile index e412edb2..44c39576 100644 --- a/ubuntu/nodejs/6.3.1/Dockerfile +++ b/ubuntu/nodejs/6.3.1/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV NODE_VERSION="6.3.1" @@ -77,3 +110,5 @@ RUN wget "https://nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* CMD [ "node" ] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/nodejs/6.3.1/dockerd-entrypoint.sh b/ubuntu/nodejs/6.3.1/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/nodejs/6.3.1/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/python/2.7.12/Dockerfile b/ubuntu/python/2.7.12/Dockerfile index 77eebe7e..02d6eede 100644 --- a/ubuntu/python/2.7.12/Dockerfile +++ b/ubuntu/python/2.7.12/Dockerfile @@ -14,6 +14,13 @@ FROM ubuntu:14.04.5 ENV LANG="C.UTF-8" +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -36,7 +43,7 @@ RUN apt-get update \ # on the public repos. && apt-get update && apt-get install -y --no-install-recommends autoconf=2.69-* automake=1:1.14.1-* \ bzip2=1.0.6-* file=1:5.14-* g++=4:4.8.2-* gcc=4:4.8.2-* imagemagick=8:6.7.7.10-* \ - libbz2-dev=1.0.6-* libc6-dev=2.19-* libcurl4-openssl-dev=7.35.0-* \ + libbz2-dev=1.0.6-* libc6-dev=2.19-* libcurl4-openssl-dev=7.35.0-* curl=7.35.0-* \ libdb-dev=1:5.3.21~* libevent-dev=2.0.21-stable-* libffi-dev=3.1~rc1+r3.0.13-* \ libgeoip-dev=1.6.0-* libglib2.0-dev=2.40.2-* libjpeg-dev=8c-* \ libkrb5-dev=1.12+dfsg-* liblzma-dev=5.1.1alpha+20120614-* libmagickcore-dev=8:6.7.7.10-* \ @@ -45,9 +52,33 @@ RUN apt-get update \ libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* libxml2-dev=2.9.1+dfsg1-* \ libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* \ zlib1g-dev=1:1.2.8.dfsg-* tcl=8.6.0+* tk=8.6.0+* ca-certificates \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ - && rm -rf /var/lib/apt/lists/* - + && rm -rf /var/lib/apt/lists/* + +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV PATH="/usr/local/bin:$PATH" \ GPG_KEY="C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF" \ @@ -100,3 +131,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -rf /usr/src/python ~/.cache CMD ["python2"] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/python/2.7.12/dockerd-entrypoint.sh b/ubuntu/python/2.7.12/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/python/2.7.12/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/python/3.3.6/Dockerfile b/ubuntu/python/3.3.6/Dockerfile index 028ca754..7c54918b 100644 --- a/ubuntu/python/3.3.6/Dockerfile +++ b/ubuntu/python/3.3.6/Dockerfile @@ -14,6 +14,13 @@ FROM ubuntu:14.04.5 ENV LANG="C.UTF-8" +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -36,7 +43,7 @@ RUN apt-get update \ # on the public repos. && apt-get update && apt-get install -y --no-install-recommends autoconf=2.69-* automake=1:1.14.1-* \ bzip2=1.0.6-* file=1:5.14-* g++=4:4.8.2-* gcc=4:4.8.2-* imagemagick=8:6.7.7.10-* \ - libbz2-dev=1.0.6-* libc6-dev=2.19-* libcurl4-openssl-dev=7.35.0-* \ + libbz2-dev=1.0.6-* libc6-dev=2.19-* libcurl4-openssl-dev=7.35.0-* curl=7.35.0-* \ libdb-dev=1:5.3.21~* libevent-dev=2.0.21-stable-* libffi-dev=3.1~rc1+r3.0.13-* \ libgeoip-dev=1.6.0-* libglib2.0-dev=2.40.2-* libjpeg-dev=8c-* \ libkrb5-dev=1.12+dfsg-* liblzma-dev=5.1.1alpha+20120614-* libmagickcore-dev=8:6.7.7.10-* \ @@ -45,9 +52,33 @@ RUN apt-get update \ libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* libxml2-dev=2.9.1+dfsg1-* \ libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* \ zlib1g-dev=1:1.2.8.dfsg-* tcl=8.6.0+* tk=8.6.0+* ca-certificates \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ - && rm -rf /var/lib/apt/lists/* - + && rm -rf /var/lib/apt/lists/* + +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV PATH="/usr/local/bin:$PATH" \ GPG_KEY="26DEA9D4613391EF3E25C9FF0A5B101836580288" \ @@ -110,3 +141,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* CMD ["python3"] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/python/3.3.6/dockerd-entrypoint.sh b/ubuntu/python/3.3.6/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/python/3.3.6/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/python/3.4.5/Dockerfile b/ubuntu/python/3.4.5/Dockerfile index a2bd2784..e71e953f 100644 --- a/ubuntu/python/3.4.5/Dockerfile +++ b/ubuntu/python/3.4.5/Dockerfile @@ -14,6 +14,13 @@ FROM ubuntu:14.04.5 ENV LANG="C.UTF-8" +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -36,7 +43,7 @@ RUN apt-get update \ # on the public repos. && apt-get update && apt-get install -y --no-install-recommends autoconf=2.69-* automake=1:1.14.1-* \ bzip2=1.0.6-* file=1:5.14-* g++=4:4.8.2-* gcc=4:4.8.2-* imagemagick=8:6.7.7.10-* \ - libbz2-dev=1.0.6-* libc6-dev=2.19-* libcurl4-openssl-dev=7.35.0-* \ + libbz2-dev=1.0.6-* libc6-dev=2.19-* libcurl4-openssl-dev=7.35.0-* curl=7.35.0-* \ libdb-dev=1:5.3.21~* libevent-dev=2.0.21-stable-* libffi-dev=3.1~rc1+r3.0.13-* \ libgeoip-dev=1.6.0-* libglib2.0-dev=2.40.2-* libjpeg-dev=8c-* \ libkrb5-dev=1.12+dfsg-* liblzma-dev=5.1.1alpha+20120614-* libmagickcore-dev=8:6.7.7.10-* \ @@ -45,9 +52,33 @@ RUN apt-get update \ libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* libxml2-dev=2.9.1+dfsg1-* \ libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* \ zlib1g-dev=1:1.2.8.dfsg-* tcl=8.6.0+* tk=8.6.0+* ca-certificates \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ - && rm -rf /var/lib/apt/lists/* - + && rm -rf /var/lib/apt/lists/* + +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV PATH="/usr/local/bin:$PATH" \ GPG_KEY="97FC712E4C024BBEA48A61ED3A5CA953F73C700D" \ @@ -110,3 +141,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* CMD ["python3"] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/python/3.4.5/dockerd-entrypoint.sh b/ubuntu/python/3.4.5/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/python/3.4.5/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/python/3.5.2/Dockerfile b/ubuntu/python/3.5.2/Dockerfile index 0bcec288..d4d69fbf 100644 --- a/ubuntu/python/3.5.2/Dockerfile +++ b/ubuntu/python/3.5.2/Dockerfile @@ -14,6 +14,13 @@ FROM ubuntu:14.04.5 ENV LANG="C.UTF-8" +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -36,7 +43,7 @@ RUN apt-get update \ # on the public repos. && apt-get update && apt-get install -y --no-install-recommends autoconf=2.69-* automake=1:1.14.1-* \ bzip2=1.0.6-* file=1:5.14-* g++=4:4.8.2-* gcc=4:4.8.2-* imagemagick=8:6.7.7.10-* \ - libbz2-dev=1.0.6-* libc6-dev=2.19-* libcurl4-openssl-dev=7.35.0-* \ + libbz2-dev=1.0.6-* libc6-dev=2.19-* libcurl4-openssl-dev=7.35.0-* curl=7.35.0-* \ libdb-dev=1:5.3.21~* libevent-dev=2.0.21-stable-* libffi-dev=3.1~rc1+r3.0.13-* \ libgeoip-dev=1.6.0-* libglib2.0-dev=2.40.2-* libjpeg-dev=8c-* \ libkrb5-dev=1.12+dfsg-* liblzma-dev=5.1.1alpha+20120614-* libmagickcore-dev=8:6.7.7.10-* \ @@ -45,9 +52,33 @@ RUN apt-get update \ libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* libxml2-dev=2.9.1+dfsg1-* \ libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* \ zlib1g-dev=1:1.2.8.dfsg-* tcl=8.6.0+* tk=8.6.0+* ca-certificates \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ - && rm -rf /var/lib/apt/lists/* - + && rm -rf /var/lib/apt/lists/* + +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV PATH="/usr/local/bin:$PATH" \ GPG_KEY="97FC712E4C024BBEA48A61ED3A5CA953F73C700D" \ @@ -110,3 +141,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* CMD ["python3"] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/python/3.5.2/dockerd-entrypoint.sh b/ubuntu/python/3.5.2/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/python/3.5.2/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/ruby/2.2.5/Dockerfile b/ubuntu/ruby/2.2.5/Dockerfile index 33fddb5e..d0eb4b53 100644 --- a/ubuntu/ruby/2.2.5/Dockerfile +++ b/ubuntu/ruby/2.2.5/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV RUBY_MAJOR="2.2" \ RUBY_VERSION="2.2.5" \ @@ -97,3 +130,5 @@ RUN mkdir -p /usr/local/etc \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* CMD [ "irb" ] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/ruby/2.2.5/dockerd-entrypoint.sh b/ubuntu/ruby/2.2.5/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/ruby/2.2.5/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/ruby/2.3.1/Dockerfile b/ubuntu/ruby/2.3.1/Dockerfile index 1ab58246..1049b0e4 100644 --- a/ubuntu/ruby/2.3.1/Dockerfile +++ b/ubuntu/ruby/2.3.1/Dockerfile @@ -12,6 +12,13 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -28,6 +35,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -40,16 +48,41 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ - && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* - + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] + ENV RUBY_MAJOR="2.3" \ RUBY_VERSION="2.3.1" \ @@ -97,3 +130,5 @@ RUN mkdir -p /usr/local/etc \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* CMD [ "irb" ] + +ENTRYPOINT ["dockerd-entrypoint.sh"] diff --git a/ubuntu/ruby/2.3.1/dockerd-entrypoint.sh b/ubuntu/ruby/2.3.1/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/ruby/2.3.1/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@" diff --git a/ubuntu/ubuntu-base/14.04/Dockerfile b/ubuntu/ubuntu-base/14.04/Dockerfile index 37153380..def196d4 100644 --- a/ubuntu/ubuntu-base/14.04/Dockerfile +++ b/ubuntu/ubuntu-base/14.04/Dockerfile @@ -1,5 +1,12 @@ FROM ubuntu:14.04.5 +ENV DOCKER_BUCKET="download.docker.com" \ + DOCKER_VERSION="17.09.0-ce" \ + DOCKER_CHANNEL="stable" \ + DOCKER_SHA256="a9e90a73c3cdfbf238f148e1ec0eaff5eb181f92f35bdd938fd7dab18e1c4647" \ + DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ + DOCKER_COMPOSE_VERSION="1.16.1" + # Building git from source code: # Ubuntu's default git package is built with broken gnutls. Rebuild git with openssl. ########################################################################## @@ -16,6 +23,7 @@ RUN apt-get update \ libsqlite3-dev=3.8.2-* libssl-dev=1.0.1f-* libtool=2.4.2-* libwebp-dev=0.4.0-* \ libxml2-dev=2.9.1+dfsg1-* libxslt1-dev=1.1.28-* libyaml-dev=0.1.4-* make=3.81-* \ patch=2.7.1-* xz-utils=5.1.1alpha+20120614-* zlib1g-dev=1:1.2.8.dfsg-* unzip=6.0-* curl=7.35.0-* \ + e2fsprogs=1.42.9-* iptables=1.4.21-* xfsprogs=3.1.9ubuntu2 xz-utils=5.1.1alpha+20120614-* \ && apt-get install -y -qq less=458-* groff=1.22.2-* \ && apt-get -qy build-dep git=1:1.9.1 \ && apt-get -qy install libcurl4-openssl-dev=7.35.0-* git-man=1:1.9.1-* liberror-perl=0.17-* \ @@ -28,12 +36,37 @@ RUN apt-get update \ && dpkg-buildpackage -rfakeroot -b \ && find .. -type f -name "git_*ubuntu*.deb" -exec dpkg -i \{\} \; \ && rm -rf /usr/src/git-openssl \ -# Install dependencies by all python images equivalent to buildpack-deps:jessie -# on the public repos. && rm -rf /var/lib/apt/lists/* \ && apt-get clean +# Install Docker +RUN set -x \ + && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ + && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ + && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ + && rm docker.tgz \ + && docker -v \ +# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box + && addgroup dockremap \ + && useradd -g dockremap dockremap \ + && echo 'dockremap:165536:65536' >> /etc/subuid \ + && echo 'dockremap:165536:65536' >> /etc/subgid \ + && wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ + && curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/dind /usr/local/bin/docker-compose \ +# Ensure docker-compose works + && docker-compose version + +# Install dependencies by all python images equivalent to buildpack-deps:jessie +# on the public repos. + RUN wget "https://bootstrap.pypa.io/get-pip.py" -O /tmp/get-pip.py \ && python /tmp/get-pip.py \ && pip install awscli==1.11.157 \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +VOLUME /var/lib/docker + +COPY dockerd-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["dockerd-entrypoint.sh"] \ No newline at end of file diff --git a/ubuntu/ubuntu-base/14.04/dockerd-entrypoint.sh b/ubuntu/ubuntu-base/14.04/dockerd-entrypoint.sh new file mode 100755 index 00000000..7af585c1 --- /dev/null +++ b/ubuntu/ubuntu-base/14.04/dockerd-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +/usr/local/bin/dockerd \ + --host=unix:///var/run/docker.sock \ + --host=tcp://0.0.0.0:2375 \ + --storage-driver=overlay &>/var/log/docker.log & + + +tries=0 +d_timeout=60 +until docker info >/dev/null 2>&1 +do + if [ "$tries" -gt "$d_timeout" ]; then + cat /var/log/docker.log + echo 'Timed out trying to connect to internal docker host.' >&2 + exit 1 + fi + tries=$(( $tries + 1 )) + sleep 1 +done + +eval "$@"