diff --git a/scripts/install/Dockerfile-testInstall b/scripts/install/Dockerfile-testInstall deleted file mode 100644 index 5dd7554a6..000000000 --- a/scripts/install/Dockerfile-testInstall +++ /dev/null @@ -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 \ No newline at end of file diff --git a/scripts/install/install_linux.sh b/scripts/install/install_linux.sh index 1e6cee321..6bec98037 100644 --- a/scripts/install/install_linux.sh +++ b/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 diff --git a/scripts/install/test.Dockerfile b/scripts/install/test.Dockerfile new file mode 100644 index 000000000..ba844ee89 --- /dev/null +++ b/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 .