use docker cli binary instead of install from repo

This commit is contained in:
aptalca 2020-06-04 14:44:01 -04:00
parent 2922860dde
commit ff2ed2035b
3 changed files with 25 additions and 26 deletions

View File

@ -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

View File

@ -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.

View File

@ -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
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