From ff2ed2035b79603ef29bd2f790e7634061333fb4 Mon Sep 17 00:00:00 2001 From: aptalca Date: Thu, 4 Jun 2020 14:44:01 -0400 Subject: [PATCH] use docker cli binary instead of install from repo --- Dockerfile | 3 +++ README.md | 2 +- root/etc/cont-init.d/98-docker | 46 ++++++++++++++++------------------ 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/Dockerfile b/Dockerfile index 19b635f..7280400 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,11 @@ FROM linuxserver/docker-compose:arm64v8-${COMPOSE_TAG} as compose-arm64 FROM lsiobase/alpine:3.11 as buildstage COPY --from=compose-amd64 /usr/local/bin/docker-compose /root-layer/docker-compose/docker-compose_x86_64 +COPY --from=compose-amd64 /usr/local/bin/docker /root-layer/docker-compose/docker_x86_64 COPY --from=compose-arm32 /usr/local/bin/docker-compose /root-layer/docker-compose/docker-compose_armv7l +COPY --from=compose-arm32 /usr/local/bin/docker /root-layer/docker-compose/docker_armv7l COPY --from=compose-arm64 /usr/local/bin/docker-compose /root-layer/docker-compose/docker-compose_aarch64 +COPY --from=compose-arm64 /usr/local/bin/docker /root-layer/docker-compose/docker_aarch64 COPY root/ /root-layer/ # runtime stage diff --git a/README.md b/README.md index 00ebf97..7a6e807 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker - Docker mod for code-server -This mod adds docker and docker-compose to code-server, to be installed/updated during container start. +This mod adds docker and docker-compose binaries to code-server. **IMPORTANT NOTE**: For docker access inside code-server, a volume mapping needs to be added for `/var/run/docker.sock:/var/run/docker.sock` in code-server docker run/create/compose. diff --git a/root/etc/cont-init.d/98-docker b/root/etc/cont-init.d/98-docker index 85566c0..0028ffb 100644 --- a/root/etc/cont-init.d/98-docker +++ b/root/etc/cont-init.d/98-docker @@ -1,33 +1,29 @@ #!/usr/bin/with-contenv bash -echo "**** installing docker environment ****" -if ! dpkg -l | grep gnupg > /dev/null; then - apt-get update && apt-get install -y gnupg -fi -[[ ! -f "/etc/apt/sources.list.d/docker-ce.list" ]] && \ - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ - source /etc/os-release && \ - echo "deb https://download.docker.com/linux/ubuntu $UBUNTU_CODENAME stable" > /etc/apt/sources.list.d/docker-ce.list -apt-get update && apt-get install -y --no-install-recommends \ - docker-ce -echo "**** fixing permissions ****" -DOCKER_GID=$(stat -c '%g' "/var/run/docker.sock") -if id -G abc | grep -qw "$DOCKER_GID"; then - exit 0 -else - DOCKER_NAME=$(getent group "${DOCKER_GID}" | awk -F: '{print $1}') - if [ -z "${DOCKER_NAME}" ]; then - DOCKER_NAME="dockergroup" - groupadd -g "${DOCKER_GID}" "${DOCKER_NAME}" - fi - usermod -aG "${DOCKER_NAME}" abc -fi -echo "**** installing docker compose ****" +echo "**** installing docker and docker compose ****" ARCH=$(uname -m) if [ -f "/docker-compose/docker-compose_${ARCH}" ]; then + echo "Copying over docker and docker-compose binaries" mv "/docker-compose/docker-compose_${ARCH}" /usr/local/bin/docker-compose + mv "/docker-compose/docker_${ARCH}" /usr/local/bin/docker chmod +x /usr/local/bin/docker-compose rm -rf /docker-compose else - echo "docker-compose already installed, skipping" -fi \ No newline at end of file + echo "**** docker and docker-compose already installed, skipping ****" +fi + +if [ -S /var/run/docker.sock ]; then + DOCKER_GID=$(stat -c '%g' "/var/run/docker.sock") + if id -G abc | grep -qw "$DOCKER_GID"; then + exit 0 + else + DOCKER_NAME=$(getent group "${DOCKER_GID}" | awk -F: '{print $1}') + if [ -z "${DOCKER_NAME}" ]; then + DOCKER_NAME="dockergroup" + groupadd -g "${DOCKER_GID}" "${DOCKER_NAME}" + fi + usermod -aG "${DOCKER_NAME}" abc + fi +else + echo "**** Please map /var/run/docker.sock or docker won't work inside this container ****" +fi