scripts: Update Linux install scripts

Signed-off-by: Chris Crone <christopher.crone@docker.com>
This commit is contained in:
Chris Crone 2020-09-22 10:15:16 +02:00 committed by Guillaume Tardif
parent 2aea82a7c6
commit 121bc3b2e9
3 changed files with 49 additions and 26 deletions

View File

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

View File

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

View File

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