From 30009edbf5ccdaa08698d251a989e6d2112ae2f6 Mon Sep 17 00:00:00 2001 From: Martin Liu Date: Mon, 31 Aug 2020 22:59:26 -0700 Subject: [PATCH 1/6] Upgrade Docker to 19.03.12 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 760eadf..12bb92c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM alpine:3.10 LABEL maintainer="Dmitry Matrosov " -ENV DOCKER_VERSION=18.09.8 \ +ENV DOCKER_VERSION=19.03.12 \ DOCKER_COMPOSE_VERSION=1.24.1 # Install Docker and Docker Compose From 785139fe30c4709d36d813fa55e4d1a2007aec35 Mon Sep 17 00:00:00 2001 From: Martin Liu Date: Fri, 19 Nov 2021 00:10:19 -0800 Subject: [PATCH 2/6] Update Docker Compose to 1.25.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 12bb92c..31c61ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM alpine:3.10 LABEL maintainer="Dmitry Matrosov " ENV DOCKER_VERSION=19.03.12 \ - DOCKER_COMPOSE_VERSION=1.24.1 + DOCKER_COMPOSE_VERSION=1.25.0 # Install Docker and Docker Compose RUN apk --no-cache add bash curl util-linux device-mapper py-pip python-dev libffi-dev openssl-dev gcc libc-dev make iptables && \ From 9f8ce128b7639a2008a06313996e9d2fce5cbc15 Mon Sep 17 00:00:00 2001 From: Martin Liu Date: Fri, 19 Nov 2021 00:23:42 -0800 Subject: [PATCH 3/6] Use python3 --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 31c61ce..6c71344 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,11 +6,12 @@ ENV DOCKER_VERSION=19.03.12 \ DOCKER_COMPOSE_VERSION=1.25.0 # Install Docker and Docker Compose -RUN apk --no-cache add bash curl util-linux device-mapper py-pip python-dev libffi-dev openssl-dev gcc libc-dev make iptables && \ +RUN apk --no-cache add bash curl util-linux device-mapper py3-pip python3-dev libffi-dev openssl-dev gcc libc-dev make iptables && \ curl https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz | tar zx && \ mv /docker/* /bin/ && \ chmod +x /bin/docker* && \ - pip install docker-compose==${DOCKER_COMPOSE_VERSION} && \ + pip3 install --upgrade pip && \ + pip3 install docker-compose==${DOCKER_COMPOSE_VERSION} && \ rm -rf /root/.cache # Include functions to start/stop docker daemon From cb71009e355ed2589808082e7039b0e361fe619e Mon Sep 17 00:00:00 2001 From: Henry Chan Date: Thu, 23 Nov 2023 12:42:57 -0800 Subject: [PATCH 4/6] ubuntu work with dcind --- Dockerfile.ubuntu | 21 +++++++++++++++++++++ buildAndPushDockerhub.sh | 18 ++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 Dockerfile.ubuntu create mode 100755 buildAndPushDockerhub.sh diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu new file mode 100644 index 0000000..edb6458 --- /dev/null +++ b/Dockerfile.ubuntu @@ -0,0 +1,21 @@ +# Inspired by https://github.com/mumoshu/dcind +# see : https://github.com/actions/runner-images/issues/7606 +FROM summerwind/actions-runner:ubuntu-22.04 +LABEL maintainer="Henry Chan " +USER root +ENV DOCKER_VERSION=19.03.12 \ + DOCKER_COMPOSE_VERSION=1.25.0 + +RUN apt-get update +# Install Docker and Docker Compose +# from https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-install-Docker-and-docker-compose-on-Ubuntu#:~:text=Docker%20and%20compose%20install%20steps%20on%20Ubuntu&text=Download%20Docker%20GPG%20file,Docker%20and%20docker%20compose%20setup +RUN apt-get -y install curl gnupg ca-certificates lsb-release git-all +RUN mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg +RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null +# must run it "update" again per: https://stackoverflow.com/questions/71393595/installing-docker-in-ubuntu-from-repo-cant-find-a-repo +RUN apt-get update +RUN apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin +USER runner + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["/bin/bash"] diff --git a/buildAndPushDockerhub.sh b/buildAndPushDockerhub.sh new file mode 100755 index 0000000..b582f11 --- /dev/null +++ b/buildAndPushDockerhub.sh @@ -0,0 +1,18 @@ +# by Henry Chan +# this file is built on Mac M1 (ARM) and pushed to Dockerhub (AMD64) +# we are basing this off of Ubuntu because that's what GHA uses +# https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md +# we also need dcind to keep parity with Concourse +export PUSH_FLAG="--push" +export BUILD_FLAG="buildx build --platform linux/amd64" +export TAG=2.0.0 +export IMAGE=opendoor/dcind-ubuntu +if [ "$#" -gt 0 ] +then + PUSH_FLAG="" + BUILD_FLAG="build" + echo This is a local build for your Mac +fi +# docker login --username=$DOCKER_USERNAME --password=$DOCKER_PASSWORD +docker $BUILD_FLAG -t $IMAGE:$TAG . $PUSH_FLAG -f Dockerfile.ubuntu +echo Built $IMAGE:$TAG From 6491e2c9a5bf77c06c335914434aa2ce5d06c0e3 Mon Sep 17 00:00:00 2001 From: Henry Chan Date: Thu, 23 Nov 2023 16:38:32 -0800 Subject: [PATCH 5/6] added gh --- Dockerfile.ubuntu | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index edb6458..dab13d0 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -11,11 +11,17 @@ RUN apt-get update # from https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-install-Docker-and-docker-compose-on-Ubuntu#:~:text=Docker%20and%20compose%20install%20steps%20on%20Ubuntu&text=Download%20Docker%20GPG%20file,Docker%20and%20docker%20compose%20setup RUN apt-get -y install curl gnupg ca-certificates lsb-release git-all RUN mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg -RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null +RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee -a /etc/apt/sources.list.d/docker.list > /dev/null +# https://github.com/cli/cli/blob/trunk/docs/install_linux.md +RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg +RUN chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg +RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee -a /etc/apt/sources.list.d/github-cli.list > /dev/null + # must run it "update" again per: https://stackoverflow.com/questions/71393595/installing-docker-in-ubuntu-from-repo-cant-find-a-repo RUN apt-get update +RUN apt-get -y install gh RUN apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin -USER runner +#USER runner ENTRYPOINT ["/entrypoint.sh"] CMD ["/bin/bash"] From 406277dd483fc69a7d5fdc7fec19d2a80944da5b Mon Sep 17 00:00:00 2001 From: Dan Hipschman <48698358+dan-hipschman-od@users.noreply.github.com> Date: Tue, 25 Jun 2024 14:58:32 -0700 Subject: [PATCH 6/6] Fix dcind for concourse --- Dockerfile | 24 +++++++++++++----------- buildAndPushDockerhub.sh | 6 +++--- docker-lib.sh | 6 +++++- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6c71344..961811d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,20 @@ # Inspired by https://github.com/mumoshu/dcind -FROM alpine:3.10 -LABEL maintainer="Dmitry Matrosov " +FROM alpine:3.20.1 -ENV DOCKER_VERSION=19.03.12 \ - DOCKER_COMPOSE_VERSION=1.25.0 +ENV DOCKER_VERSION=25.0.3 \ + DOCKER_COMPOSE_VERSION=2.28.1 -# Install Docker and Docker Compose -RUN apk --no-cache add bash curl util-linux device-mapper py3-pip python3-dev libffi-dev openssl-dev gcc libc-dev make iptables && \ - curl https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz | tar zx && \ +# Install Docker +RUN apk --no-cache add bash curl util-linux device-mapper py3-pip python3-dev libffi-dev openssl-dev gcc libc-dev make iptables +RUN curl https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz | tar zx && \ mv /docker/* /bin/ && \ - chmod +x /bin/docker* && \ - pip3 install --upgrade pip && \ - pip3 install docker-compose==${DOCKER_COMPOSE_VERSION} && \ - rm -rf /root/.cache + chmod +x /bin/docker* +# Install Docker Compose +RUN mkdir -p ~/.docker/cli-plugins && \ + curl -SL https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose && \ + chmod +x ~/.docker/cli-plugins/docker-compose && \ + echo -e '#!/bin/bash\nexec docker compose "$@"' > /usr/bin/docker-compose && \ + chmod +x /usr/bin/docker-compose # Include functions to start/stop docker daemon COPY docker-lib.sh /docker-lib.sh diff --git a/buildAndPushDockerhub.sh b/buildAndPushDockerhub.sh index b582f11..27b8101 100755 --- a/buildAndPushDockerhub.sh +++ b/buildAndPushDockerhub.sh @@ -5,8 +5,8 @@ # we also need dcind to keep parity with Concourse export PUSH_FLAG="--push" export BUILD_FLAG="buildx build --platform linux/amd64" -export TAG=2.0.0 -export IMAGE=opendoor/dcind-ubuntu +export TAG=docker-25.0.3 +export IMAGE=opendoor/dcind if [ "$#" -gt 0 ] then PUSH_FLAG="" @@ -14,5 +14,5 @@ then echo This is a local build for your Mac fi # docker login --username=$DOCKER_USERNAME --password=$DOCKER_PASSWORD -docker $BUILD_FLAG -t $IMAGE:$TAG . $PUSH_FLAG -f Dockerfile.ubuntu +docker $BUILD_FLAG -t $IMAGE:$TAG . $PUSH_FLAG -f Dockerfile echo Built $IMAGE:$TAG diff --git a/docker-lib.sh b/docker-lib.sh index a2a6446..5b43504 100755 --- a/docker-lib.sh +++ b/docker-lib.sh @@ -3,7 +3,7 @@ LOG_FILE=${LOG_FILE:-/tmp/docker.log} SKIP_PRIVILEGED=${SKIP_PRIVILEGED:-false} -STARTUP_TIMEOUT=${STARTUP_TIMEOUT:-20} +STARTUP_TIMEOUT=${STARTUP_TIMEOUT:-60} DOCKER_DATA_ROOT=${DOCKER_DATA_ROOT:-/scratch/docker} sanitize_cgroups() { @@ -106,6 +106,10 @@ start_docker() { if ! timeout ${STARTUP_TIMEOUT} bash -ce 'while true; do try_start && break; done'; then echo Docker failed to start within ${STARTUP_TIMEOUT} seconds. + echo "Logs" + echo "------------------------------------------------------------------" + cat $LOG_FILE + echo "------------------------------------------------------------------" return 1 fi else