Merge pull request #632 from docker/eula-packaging

Add Docker EULA to packages
This commit is contained in:
Guillaume Tardif 2020-09-23 09:32:36 +02:00 committed by GitHub
commit 64cd8ebf8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 85 additions and 31 deletions

View File

@ -1,3 +1,4 @@
.git/
bin/
dist/
tests/node-client/node_modules/

View File

@ -25,10 +25,10 @@ jobs:
${{ runner.os }}-go-
- name: Build
run: make -f builder.Makefile cross
run: make -f builder.Makefile package
- uses: ncipollo/release-action@v1
with:
artifacts: "bin/*"
artifacts: "dist/*"
prerelease: true
token: ${{ secrets.GITHUB_TOKEN }}

1
.gitignore vendored
View File

@ -1 +1,2 @@
bin/
dist/

View File

@ -32,39 +32,59 @@ GO_BUILD=$(STATIC_FLAGS) go build -trimpath -ldflags=$(LDFLAGS)
BINARY?=bin/docker
BINARY_WITH_EXTENSION=$(BINARY)$(EXTENSION)
WORK_DIR:=$(shell mktemp -d)
TAGS:=
ifdef BUILD_TAGS
TAGS=-tags $(BUILD_TAGS)
endif
TAR_TRANSFORM:=--transform s/packaging/docker/ --transform s/bin/docker/ --transform s/docker-linux-amd64/docker/ --transform s/docker-darwin-amd64/docker/
ifneq ($(findstring bsd,$(shell tar --version)),)
TAR_TRANSFORM=-s /packaging/docker/ -s /bin/docker/ -s /docker-linux-amd64/docker/ -s /docker-darwin-amd64/docker/
endif
all: cli
.PHONY: protos
protos:
protoc -I. --go_out=plugins=grpc,paths=source_relative:. ${PROTOS}
.PHONY: cli
cli:
GOOS=${GOOS} GOARCH=${GOARCH} $(GO_BUILD) $(TAGS) -o $(BINARY_WITH_EXTENSION) ./cli
.PHONY: cross
cross:
GOOS=linux GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-linux-amd64 ./cli
GOOS=darwin GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-darwin-amd64 ./cli
GOOS=windows GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-windows-amd64.exe ./cli
.PHONY: test
test:
go test $(TAGS) -cover $(shell go list ./... | grep -vE 'e2e')
.PHONY: lint
lint:
golangci-lint run --timeout 10m0s ./...
.PHONY: import-restrictions
import-restrictions:
import-restrictions --configuration import-restrictions.yaml
.PHONY: check-licese-headers
check-license-headers:
./scripts/validate/fileheader
.PHONY: check-go-mod
check-go-mod:
./scripts/validate/check-go-mod
FORCE:
.PHONY: all protos cli cross test lint
.PHONY: package
package: cross
mkdir -p dist
tar -czf dist/docker-linux-amd64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-linux-amd64
tar -czf dist/docker-darwin-amd64.tar.gz $(TAR_TRANSFORM) packaging/LICENSE $(BINARY)-darwin-amd64
cp $(BINARY)-windows-amd64.exe $(WORK_DIR)/docker.exe
rm -f dist/docker-windows-amd64.zip && zip dist/docker-windows-amd64.zip -j packaging/LICENSE $(WORK_DIR)/docker.exe
rm -r $(WORK_DIR)

2
packaging/LICENSE Normal file
View File

@ -0,0 +1,2 @@
The Docker End User License Agreement (https://www.docker.com/legal/docker-software-end-user-license-agreement) describes Docker's Terms for this software.
By downloading, accessing, or using this software you expressly accept and agree to the Terms set out in the Docker End User License Agreement.

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 /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,42 @@
# 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.
# Distro options: ubuntu, centos
ARG DISTRO=ubuntu
FROM ubuntu:20.04 AS base-ubuntu
RUN apt-get update && apt-get install -y \
curl
RUN curl https://get.docker.com | sh
FROM centos:7 AS base-centos
RUN curl https://get.docker.com | sh
FROM base-${DISTRO} 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
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 .
#
# You can specify centos or ubuntu as distros using the DISTRO build arg.