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/ .git/
bin/ bin/
dist/
tests/node-client/node_modules/ tests/node-client/node_modules/

View File

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

1
.gitignore vendored
View File

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

View File

@ -32,39 +32,59 @@ GO_BUILD=$(STATIC_FLAGS) go build -trimpath -ldflags=$(LDFLAGS)
BINARY?=bin/docker BINARY?=bin/docker
BINARY_WITH_EXTENSION=$(BINARY)$(EXTENSION) BINARY_WITH_EXTENSION=$(BINARY)$(EXTENSION)
WORK_DIR:=$(shell mktemp -d)
TAGS:= TAGS:=
ifdef BUILD_TAGS ifdef BUILD_TAGS
TAGS=-tags $(BUILD_TAGS) TAGS=-tags $(BUILD_TAGS)
endif 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 all: cli
.PHONY: protos
protos: protos:
protoc -I. --go_out=plugins=grpc,paths=source_relative:. ${PROTOS} protoc -I. --go_out=plugins=grpc,paths=source_relative:. ${PROTOS}
.PHONY: cli
cli: cli:
GOOS=${GOOS} GOARCH=${GOARCH} $(GO_BUILD) $(TAGS) -o $(BINARY_WITH_EXTENSION) ./cli GOOS=${GOOS} GOARCH=${GOARCH} $(GO_BUILD) $(TAGS) -o $(BINARY_WITH_EXTENSION) ./cli
.PHONY: cross
cross: cross:
GOOS=linux GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-linux-amd64 ./cli 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=darwin GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-darwin-amd64 ./cli
GOOS=windows GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-windows-amd64.exe ./cli GOOS=windows GOARCH=amd64 $(GO_BUILD) $(TAGS) -o $(BINARY)-windows-amd64.exe ./cli
.PHONY: test
test: test:
go test $(TAGS) -cover $(shell go list ./... | grep -vE 'e2e') go test $(TAGS) -cover $(shell go list ./... | grep -vE 'e2e')
.PHONY: lint
lint: lint:
golangci-lint run --timeout 10m0s ./... golangci-lint run --timeout 10m0s ./...
.PHONY: import-restrictions
import-restrictions: import-restrictions:
import-restrictions --configuration import-restrictions.yaml import-restrictions --configuration import-restrictions.yaml
.PHONY: check-licese-headers
check-license-headers: check-license-headers:
./scripts/validate/fileheader ./scripts/validate/fileheader
.PHONY: check-go-mod
check-go-mod: check-go-mod:
./scripts/validate/check-go-mod ./scripts/validate/check-go-mod
FORCE: .PHONY: package
package: cross
.PHONY: all protos cli cross test lint 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 # See the License for the specific language governing permissions and
# limitations under the License. # 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 set -eu
@ -106,18 +106,19 @@ if ! [ "$(command -v curl)" ]; then
exit 1 exit 1
fi 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 "docker") -eq 1 ]; then
if [ $(is_new_cli "/usr/local/bin/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') 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}"
$sudo_sh_c "install -m 775 ${download_dir}/docker-aci /usr/local/bin/docker" $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 exit 0
fi 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 exit 1
fi fi
@ -169,7 +170,8 @@ echo "Downloading CLI..."
# Download CLI to temporary directory # Download CLI to temporary directory
download_dir=$($sh_c 'mktemp -d') 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 "Downloaded CLI!"
echo "Installing CLI..." echo "Installing CLI..."
@ -178,7 +180,7 @@ echo "Installing CLI..."
$sudo_sh_c "ln -s ${existing_cli_path} ${link_path}" $sudo_sh_c "ln -s ${existing_cli_path} ${link_path}"
# Install downloaded CLI # 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 # Clear cache
cleared_cache=1 cleared_cache=1
@ -196,12 +198,12 @@ if [ -n "$DRY_RUN" ]; then
fi fi
if [ -n "$cleared_cache" ]; then if [ -n "$cleared_cache" ]; then
# Check ACI CLI is working # Check Compose CLI is working
if [ $(is_new_cli "docker") -eq 0 ]; then 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 exit 1
fi fi
echo "Done!" echo "Done!"
else 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 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.