aboutsummaryrefslogtreecommitdiff
path: root/src/docker-in-docker/install.sh
diff options
context:
space:
mode:
authorM. R <2947595+m-roberts@users.noreply.github.com>2023-05-02 22:00:45 +0300
committerGitHub <noreply@github.com>2023-05-02 22:00:45 +0300
commit4312340798680a2b148847b124fcf737e5839c2e (patch)
tree60685df52a1f8b197a78e0dffa553ccb0463ba4f /src/docker-in-docker/install.sh
parentb16ff1efb7b092c73ab1e13c3d016d1ab7a9e4b6 (diff)
Add support for skipping `docker-compose` v1 operations during Docker feature install script (#533)feature_docker-outside-of-docker_1.3.0feature_docker-in-docker_2.2.0
* Add support for skipping docker-compose operations * Move changes from auto-generated files to templates and bump version * Add test * Add test conditions * Add test conditions for docker-outside-of-docker * install.sh set -x for debugging * set -x * Move compose-switch check in docker-outside-of-docker test * Put into correct test * Test for correct path
Diffstat (limited to 'src/docker-in-docker/install.sh')
-rwxr-xr-xsrc/docker-in-docker/install.sh103
1 files changed, 53 insertions, 50 deletions
diff --git a/src/docker-in-docker/install.sh b/src/docker-in-docker/install.sh
index 7705199..9ad807e 100755
--- a/src/docker-in-docker/install.sh
+++ b/src/docker-in-docker/install.sh
@@ -10,7 +10,7 @@
DOCKER_VERSION="${VERSION:-"latest"}" # The Docker/Moby Engine + CLI should match in version
USE_MOBY="${MOBY:-"true"}"
-DOCKER_DASH_COMPOSE_VERSION="${DOCKERDASHCOMPOSEVERSION:-"v1"}" # v1 or v2
+DOCKER_DASH_COMPOSE_VERSION="${DOCKERDASHCOMPOSEVERSION:-"v1"}" # v1 or v2 or none
AZURE_DNS_AUTO_DETECTION="${AZUREDNSAUTODETECTION:-"true"}"
DOCKER_DEFAULT_ADDRESS_POOL="${DOCKERDEFAULTADDRESSPOOL}"
USERNAME="${USERNAME:-"${_REMOTE_USER:-"automatic"}"}"
@@ -242,58 +242,61 @@ fi
echo "Finished installing docker / moby!"
-# Install Docker Compose if not already installed and is on a supported architecture
-if type docker-compose > /dev/null 2>&1; then
- echo "Docker Compose v1 already installed."
-else
- target_compose_arch="${architecture}"
- if [ "${target_compose_arch}" = "amd64" ]; then
- target_compose_arch="x86_64"
- fi
- if [ "${target_compose_arch}" != "x86_64" ]; then
- # Use pip to get a version that runs on this architecture
- check_packages python3-minimal python3-pip libffi-dev python3-venv
- export PIPX_HOME=/usr/local/pipx
- mkdir -p ${PIPX_HOME}
- export PIPX_BIN_DIR=/usr/local/bin
- export PYTHONUSERBASE=/tmp/pip-tmp
- export PIP_CACHE_DIR=/tmp/pip-tmp/cache
- pipx_bin=pipx
- if ! type pipx > /dev/null 2>&1; then
- pip3 install --disable-pip-version-check --no-cache-dir --user pipx
- pipx_bin=/tmp/pip-tmp/bin/pipx
- fi
- ${pipx_bin} install --pip-args '--no-cache-dir --force-reinstall' docker-compose
- rm -rf /tmp/pip-tmp
+# If 'docker-compose' command is to be included
+if [ "${DOCKER_DASH_COMPOSE_VERSION}" != "none" ]; then
+ # Install Docker Compose if not already installed and is on a supported architecture
+ if type docker-compose > /dev/null 2>&1; then
+ echo "Docker Compose v1 already installed."
else
- compose_v1_version="1"
- find_version_from_git_tags compose_v1_version "https://github.com/docker/compose" "tags/"
- echo "(*) Installing docker-compose ${compose_v1_version}..."
- curl -fsSL "https://github.com/docker/compose/releases/download/${compose_v1_version}/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
+ target_compose_arch="${architecture}"
+ if [ "${target_compose_arch}" = "amd64" ]; then
+ target_compose_arch="x86_64"
+ fi
+ if [ "${target_compose_arch}" != "x86_64" ]; then
+ # Use pip to get a version that runs on this architecture
+ check_packages python3-minimal python3-pip libffi-dev python3-venv
+ export PIPX_HOME=/usr/local/pipx
+ mkdir -p ${PIPX_HOME}
+ export PIPX_BIN_DIR=/usr/local/bin
+ export PYTHONUSERBASE=/tmp/pip-tmp
+ export PIP_CACHE_DIR=/tmp/pip-tmp/cache
+ pipx_bin=pipx
+ if ! type pipx > /dev/null 2>&1; then
+ pip3 install --disable-pip-version-check --no-cache-dir --user pipx
+ pipx_bin=/tmp/pip-tmp/bin/pipx
+ fi
+ ${pipx_bin} install --pip-args '--no-cache-dir --force-reinstall' docker-compose
+ rm -rf /tmp/pip-tmp
+ else
+ compose_v1_version="1"
+ find_version_from_git_tags compose_v1_version "https://github.com/docker/compose" "tags/"
+ echo "(*) Installing docker-compose ${compose_v1_version}..."
+ curl -fsSL "https://github.com/docker/compose/releases/download/${compose_v1_version}/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
+ chmod +x /usr/local/bin/docker-compose
+ fi
fi
-fi
-# Install docker-compose switch if not already installed - https://github.com/docker/compose-switch#manual-installation
-current_v1_compose_path="$(which docker-compose)"
-target_v1_compose_path="$(dirname "${current_v1_compose_path}")/docker-compose-v1"
-if ! type compose-switch > /dev/null 2>&1; then
- echo "(*) Installing compose-switch..."
- compose_switch_version="latest"
- find_version_from_git_tags compose_switch_version "https://github.com/docker/compose-switch"
- curl -fsSL "https://github.com/docker/compose-switch/releases/download/v${compose_switch_version}/docker-compose-linux-${architecture}" -o /usr/local/bin/compose-switch
- chmod +x /usr/local/bin/compose-switch
- # TODO: Verify checksum once available: https://github.com/docker/compose-switch/issues/11
-
- # Setup v1 CLI as alternative in addition to compose-switch (which maps to v2)
- mv "${current_v1_compose_path}" "${target_v1_compose_path}"
- update-alternatives --install /usr/local/bin/docker-compose docker-compose /usr/local/bin/compose-switch 99
- update-alternatives --install /usr/local/bin/docker-compose docker-compose "${target_v1_compose_path}" 1
-fi
-if [ "${DOCKER_DASH_COMPOSE_VERSION}" = "v1" ]; then
- update-alternatives --set docker-compose "${target_v1_compose_path}"
-else
- update-alternatives --set docker-compose /usr/local/bin/compose-switch
+ # Install docker-compose switch if not already installed - https://github.com/docker/compose-switch#manual-installation
+ current_v1_compose_path="$(which docker-compose)"
+ target_v1_compose_path="$(dirname "${current_v1_compose_path}")/docker-compose-v1"
+ if ! type compose-switch > /dev/null 2>&1; then
+ echo "(*) Installing compose-switch..."
+ compose_switch_version="latest"
+ find_version_from_git_tags compose_switch_version "https://github.com/docker/compose-switch"
+ curl -fsSL "https://github.com/docker/compose-switch/releases/download/v${compose_switch_version}/docker-compose-linux-${architecture}" -o /usr/local/bin/compose-switch
+ chmod +x /usr/local/bin/compose-switch
+ # TODO: Verify checksum once available: https://github.com/docker/compose-switch/issues/11
+
+ # Setup v1 CLI as alternative in addition to compose-switch (which maps to v2)
+ mv "${current_v1_compose_path}" "${target_v1_compose_path}"
+ update-alternatives --install /usr/local/bin/docker-compose docker-compose /usr/local/bin/compose-switch 99
+ update-alternatives --install /usr/local/bin/docker-compose docker-compose "${target_v1_compose_path}" 1
+ fi
+ if [ "${DOCKER_DASH_COMPOSE_VERSION}" = "v1" ]; then
+ update-alternatives --set docker-compose "${target_v1_compose_path}"
+ else
+ update-alternatives --set docker-compose /usr/local/bin/compose-switch
+ fi
fi
# If init file already exists, exit