Skip to content
This repository has been archived by the owner on Nov 27, 2023. It is now read-only.

Commit

Permalink
Merge pull request #632 from docker/eula-packaging
Browse files Browse the repository at this point in the history
Add Docker EULA to packages
  • Loading branch information
gtardif authored Sep 23, 2020
2 parents d42a931 + dd57e9e commit 64cd8eb
Show file tree
Hide file tree
Showing 8 changed files with 85 additions and 31 deletions.
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.git/
bin/
dist/
tests/node-client/node_modules/
4 changes: 2 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
bin/
dist/
26 changes: 23 additions & 3 deletions builder.Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 2 additions & 0 deletions packaging/LICENSE
Original file line number Diff line number Diff line change
@@ -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.
14 changes: 0 additions & 14 deletions scripts/install/Dockerfile-testInstall

This file was deleted.

26 changes: 14 additions & 12 deletions scripts/install/install_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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..."
Expand All @@ -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
Expand All @@ -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
42 changes: 42 additions & 0 deletions scripts/install/test.Dockerfile
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit 64cd8eb

Please sign in to comment.