Explorar o código

Merge pull request #679 from docker/linux-install

Fix Linux install instructions and script
Chris Crone %!s(int64=5) %!d(string=hai) anos
pai
achega
4b54422376
Modificáronse 3 ficheiros con 2 adicións e 199 borrados
  1. 1 1
      INSTALL.md
  2. 0 197
      docs/install/install.sh
  3. 1 1
      scripts/install/install_linux.sh

+ 1 - 1
INSTALL.md

@@ -19,7 +19,7 @@ with a fresh install of Ubuntu 20.04.
 You can install the Compose CLI using the install script:
 
 ```console
-curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install_linux.sh | sh
+curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sh
 ```
 
 ## Manual install

+ 0 - 197
docs/install/install.sh

@@ -1,197 +0,0 @@
-#!/bin/sh
-
-#   Copyright 2020 Docker Compose CLI authors
-
-#   Licensed under the Apache License, Version 2.0 (the "License");
-#   you may not use this file except in compliance with the License.
-#   You may obtain a copy of the License at
-
-#       http://www.apache.org/licenses/LICENSE-2.0
-
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS,
-#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#   See the License for the specific language governing permissions and
-#   limitations under the License.
-
-
-# Script to install the Docker ACI integration CLI on Ubuntu (Beta).
-
-set -eu
-
-CLI_VERSION=${CLI_VERSION:-0.1.4}
-DOWNLOAD_URL="${DOWNLOAD_URL:-https://github.com/docker/aci-integration-beta/releases/download/v${CLI_VERSION}/docker-linux-amd64}"
-LINK_NAME="${LINK_NAME:-com.docker.cli}"
-DRY_RUN="${DRY_RUN:-}"
-
-desktop_install_url="https://www.docker.com/products/docker-desktop"
-engine_install_url="https://docs.docker.com/get-docker/"
-
-link_path="/usr/local/bin/${LINK_NAME}"
-existing_cli_path="/usr/bin/docker"
-
-manual_install() {
-	echo "Please follow the manual install instructions"
-}
-
-is_new_cli() {
-	azure_version_str="$($1 version 2>/dev/null | grep 'Azure' || true)"
-	if [ -n "$azure_version_str" ]; then
-		echo 1
-	else
-		echo 0
-	fi
-}
-
-echo "Running checks..."
-
-# Check OS
-if [ "$(command -v uname)" ]; then
-	case "$(uname -s)" in
-		"Linux")
-			# Check for Ubuntu/Debian based distro
-			if ! [ -f "/etc/lsb-release" ]; then
-				echo "Warning: This script has been tested on Ubuntu and may not work on other distributions"
-			fi
-			# Pass
-			;;
-		"Darwin")
-			echo "Error: Script not needed on macOS, please install Docker Desktop Edge: $desktop_install_url"
-			exit 1
-			;;
-		"*")
-			echo "Error: Unsupported OS, please follow manual instructions"
-			exit 1
-			;;
-	esac
-else
-	# Assume Windows
-	echo "Error: Script not needed on Windows, please install Docker Desktop Edge: $desktop_install_url"
-	exit 1
-fi
-
-user="$(id -un 2>/dev/null || true)"
-sh_c='sh -c'
-sudo_sh_c='sh -c'
-if [ "$user" != 'root' ]; then
-    if [ "$(command -v sudo)" ]; then
-        sudo_sh_c='sudo -E sh -c'
-    elif [ "$(command -v su)" ]; then
-        sudo_sh_c='su -c'
-    else
-        echo "Error: This installer needs the ability to run commands as root."
-        exit 1
-    fi
-fi
-
-if [ -n "$DRY_RUN" ]; then
-	sh_c="echo $sh_c"
-	sudo_sh_c="echo $sudo_sh_c"
-fi
-
-# Check if Docker Engine is installed
-if ! [ "$(command -v docker)" ]; then
-	echo "Error: Docker Engine not found"
-	echo "You need to install Docker first: $engine_install_url"
-	exit 1
-fi
-
-# Check if the ACI CLI is already installed
-if [ $(is_new_cli "docker") -eq 1 ]; then
-	echo "You already have the Docker ACI Integration CLI installed"
-	exit 1
-fi
-
-# Check if this script has already been run
-if [ -f "${link_path}" ]; then
-	echo "Error: This script appears to have been run as ${link_path} exists"
-	echo "Please uninstall and rerun this script or follow the manual instructions"
-	exit 1
-fi
-
-# Check current Docker CLI is installed to /usr/bin/
-if ! [ -f "${existing_cli_path}" ]; then
-	echo "Error: This script only works if the Docker CLI is installed to /usr/bin/"
-	manual_install
-	exit 1
-fi
-
-# Check that PATH contains /usr/bin and /usr/local/bin and that the latter is
-# higher priority
-path_directories=$(echo "${PATH}" | tr ":" "\n")
-usr_bin_pos=-1
-usr_local_bin_pos=-1
-count=0
-for d in ${path_directories}; do
-	if [ "${d}" = '/usr/bin' ]; then
-		usr_bin_pos=$count
-	fi
-	if [ "${d}" = '/usr/local/bin' ]; then
-		usr_local_bin_pos=$count
-	fi
-	count=$((count + 1))
-done
-if [ $usr_bin_pos -eq -1 ]; then
-	echo "Error: /usr/bin not found in PATH"
-	manual_install
-	exit 1
-elif [ $usr_local_bin_pos -eq -1 ]; then
-	echo "Error: /usr/local/bin not found in PATH"
-	manual_install
-	exit 1
-elif ! [ $usr_local_bin_pos -lt $usr_bin_pos ]; then
-	echo "Error: /usr/local/bin is not ordered higher than /usr/bin in your PATH"
-	manual_install
-	exit 1
-fi
-
-download_cmd='curl -fsSLo'
-# Check that system has curl installed
-if ! [ "$(command -v curl)" ]; then
-	echo "Error: curl not found"
-	echo "Please install curl"
-	exit 1
-fi
-
-echo "Checks passed!"
-echo "Downloading CLI..."
-
-# Download CLI to temporary directory
-download_dir=$($sh_c 'mktemp -d')
-$sh_c "${download_cmd} ${download_dir}/docker-aci ${DOWNLOAD_URL}"
-
-echo "Downloaded CLI!"
-echo "Installing CLI..."
-
-# Link existing Docker CLI
-$sudo_sh_c "ln -s ${existing_cli_path} ${link_path}"
-
-# Install downloaded CLI
-$sudo_sh_c "install -m 775 ${download_dir}/docker-aci /usr/local/bin/docker"
-
-# Exit on dry run
-if [ -n "$DRY_RUN" ]; then
-	exit 0
-fi
-
-# Clear cache
-cleared_cache=1
-if [ "$(command hash)" ]; then
-	$sh_c "hash -r"
-elif [ "$(command rehash)" ]; then
-	$sh_c "rehash"
-else
-	cleared_cache=
-	echo "Warning: Unable to clear command cache"
-fi
-
-if [ -n "$cleared_cache" ]; then
-	# Check ACI CLI is working
-	if [ $(is_new_cli "docker") -eq 0 ]; then
-		echo "Error: Docker ACI Integration CLI installation error"
-		exit 1
-	fi
-	echo "Done!"
-else
-	echo "Please log out and in again to use the Docker ACI integration CLI"
-fi

+ 1 - 1
scripts/install/install_linux.sh

@@ -180,7 +180,7 @@ echo "Installing CLI..."
 $sudo_sh_c "ln -s ${existing_cli_path} ${link_path}"
 
 # Install downloaded CLI
-$sudo_sh_c "install -m 775 ${download_dir}/docker-linux-amd64 /usr/local/bin/docker"
+$sudo_sh_c "install -m 775 ${download_dir}/docker /usr/local/bin/docker"
 
 # Clear cache
 cleared_cache=1