浏览代码

scripts: Update Linux install scripts

Signed-off-by: Chris Crone <[email protected]>
Chris Crone 5 年之前
父节点
当前提交
121bc3b2e9
共有 3 个文件被更改,包括 49 次插入26 次删除
  1. 0 14
      scripts/install/Dockerfile-testInstall
  2. 14 12
      scripts/install/install_linux.sh
  3. 35 0
      scripts/install/test.Dockerfile

+ 0 - 14
scripts/install/Dockerfile-testInstall

@@ -1,14 +0,0 @@
-FROM ubuntu:latest
-
-RUN apt-get update
-RUN apt-get -y install curl grep
-RUN curl https://get.docker.com | sh
-
-COPY install_linux.sh /scripts/install_linux.sh
-RUN chmod +x /scripts/install_linux.sh
-RUN /scripts/install_linux.sh
-RUN docker version | grep Azure
-
-# check we can update
-RUN /scripts/install_linux.sh
-RUN docker version | grep Azure

+ 14 - 12
scripts/install/install_linux.sh

@@ -14,7 +14,7 @@
 #   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).
+# Script to install the Docker Compose CLI on Ubuntu (Beta).
 
 set -eu
 
@@ -106,18 +106,19 @@ if ! [ "$(command -v curl)" ]; then
 	exit 1
 fi
 
-DOWNLOAD_URL=$(curl -s ${RELEASE_URL} | grep "browser_download_url.*docker-linux-amd64" | cut -d : -f 2,3)
+DOWNLOAD_URL=${DOWNLOAD_URL:-$(curl -s ${RELEASE_URL} | grep "browser_download_url.*docker-linux-amd64.tar.gz" | cut -d : -f 2,3)}
 
-# Check if the ACI CLI is already installed
+# Check if the Compose CLI is already installed
 if [ $(is_new_cli "docker") -eq 1 ]; then
 	if [ $(is_new_cli "/usr/local/bin/docker") -eq 1 ]; then
-		echo "You already have the Docker ACI Integration CLI installed, overriding with latest version"
+		echo "You already have the Docker Compose CLI installed, overriding with latest version"
 		download_dir=$($sh_c 'mktemp -d')
-		$sh_c "${download_cmd} ${download_dir}/docker-aci ${DOWNLOAD_URL}"
-		$sudo_sh_c "install -m 775 ${download_dir}/docker-aci /usr/local/bin/docker"
+		$sh_c "${download_cmd} ${download_dir}/docker-compose-cli.tar.gz ${DOWNLOAD_URL}"
+		$sh_c "tar xzf ${download_dir}/docker-compose-cli.tar.gz -C ${download_dir} --strip-components 1"
+		$sudo_sh_c "install -m 775 ${download_dir}/docker-linux-amd64 /usr/local/bin/docker"
 		exit 0
 	fi
-	echo "You already have the Docker ACI Integration CLI installed, in a different location."
+	echo "You already have the Docker Compose CLI installed, in a different location."
 	exit 1
 fi
 
@@ -169,7 +170,8 @@ echo "Downloading CLI..."
 
 # Download CLI to temporary directory
 download_dir=$($sh_c 'mktemp -d')
-$sh_c "${download_cmd} ${download_dir}/docker-aci ${DOWNLOAD_URL}"
+$sh_c "${download_cmd} ${download_dir}/docker-compose-cli.tar.gz ${DOWNLOAD_URL}"
+$sh_c "tar xzf ${download_dir}/docker-compose-cli.tar.gz -C ${download_dir} --strip-components 1"
 
 echo "Downloaded CLI!"
 echo "Installing CLI..."
@@ -178,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-aci /usr/local/bin/docker"
+$sudo_sh_c "install -m 775 ${download_dir}/docker-linux-amd64 /usr/local/bin/docker"
 
 # Clear cache
 cleared_cache=1
@@ -196,12 +198,12 @@ if [ -n "$DRY_RUN" ]; then
 fi
 
 if [ -n "$cleared_cache" ]; then
-	# Check ACI CLI is working
+	# Check Compose CLI is working
 	if [ $(is_new_cli "docker") -eq 0 ]; then
-		echo "Error: Docker ACI Integration CLI installation error"
+		echo "Error: Docker Compose CLI installation error"
 		exit 1
 	fi
 	echo "Done!"
 else
-	echo "Please log out and in again to use the Docker ACI integration CLI"
+	echo "Please log out and in again to use the Docker Compose CLI"
 fi

+ 35 - 0
scripts/install/test.Dockerfile

@@ -0,0 +1,35 @@
+#   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.
+
+FROM ubuntu:20.04 AS base
+RUN apt-get update && apt-get install -y \
+    curl
+RUN curl https://get.docker.com | sh
+
+FROM base AS install
+COPY install_linux.sh /scripts/install_linux.sh
+RUN chmod +x /scripts/install_linux.sh
+ARG DOWNLOAD_URL=
+RUN DOWNLOAD_URL=${DOWNLOAD_URL} /scripts/install_linux.sh
+RUN docker version | grep Cloud
+
+# check we can update
+FROM install AS upgrade
+RUN DOWNLOAD_URL=${DOWNLOAD_URL} /scripts/install_linux.sh
+RUN docker version | grep Cloud
+
+# To run this test locally, start an HTTP server that serves the dist/ folder
+# then run a docker build passing the DOWNLOAD_URL as a build arg:
+# $ cd dist/ && python3 -m http.server &
+# $ docker build -f test.Dockerfile --build-arg DOWNLOAD_URL=http://192.168.0.22:8000/docker-linux-amd64.tar.gz .