CLEAN_PACKAGES=\ docker \ docker-engine \ docker.io \ containerd \ runc REQUIRED_PACKAGES=\ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common DOCKER_PACKAGES=\ docker-ce \ docker-ce-cli \ containerd.io HOME_BIN_DIR=$(HOME)/bin DOCKER_BIN=/usr/bin/docker DOCKER_COMPOSE_BIN=$(HOME_BIN_DIR)/docker-compose DOCKER_REPO_FILE=/etc/apt/sources.list.d/docker.list ROOT_TEE=sudo tee ROOT_APT=sudo aptitude ROOT_ADD_KEY=sudo apt-key ROOT_ADD_USER_TO_GROUP=sudo adduser RELEASE:=$(shell lsb_release -cs) clean: -docker system prune -$(ROOT_APT) remove $(DOCKER_PACKAGES) sudo rm -f $(DOCKER_COMPOSE_BIN) sudo rm -f $(DOCKER_REPO_FILE) -$(ROOT_ADD_KEY) del Docker install: install_docker install_compose install_docker: $(DOCKER_BIN) install_compose: $(DOCKER_COMPOSE_BIN) $(DOCKER_BIN): -$(ROOT_APT) remove $(CLEAN_PACKAGES) $(ROOT_APT) update $(ROOT_APT) install -y $(REQUIRED_PACKAGES) curl -fsSL https://download.docker.com/linux/ubuntu/gpg | $(ROOT_ADD_KEY) add - echo "deb https://download.docker.com/linux/ubuntu $(RELEASE) stable" \ | $(ROOT_TEE) $(DOCKER_REPO_FILE) $(ROOT_APT) update $(ROOT_APT) install -y $(DOCKER_PACKAGES) $(ROOT_ADD_USER_TO_GROUP) $(shell id -nu) docker $(DOCKER_COMPOSE_BIN): $(HOME_BIN_DIR) curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(shell uname -s)-$(shell uname -m)" -o $(DOCKER_COMPOSE_BIN) chmod +x $(DOCKER_COMPOSE_BIN) $(HOME_BIN_DIR): mkdir -p $(HOME_BIN_DIR)