From 9c47612b5d4e753a763673ad7a56570caeff72af Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Wed, 25 Nov 2020 11:23:37 +0000 Subject: [PATCH] Makefile: use docker run --rm whenever possible (#8026) Remove terminated containers once their execution has finished. This saves the users a bit of disk space. Closes: #8023 --- Makefile | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 1d8164219f..4c94c2d492 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,8 @@ BUILDDIR ?= $(CURDIR)/build SIMAPP = ./simapp MOCKS_DIR = $(CURDIR)/tests/mocks HTTPS_GIT := https://github.com/cosmos/cosmos-sdk.git -DOCKER_BUF := docker run -v $(CURDIR):/workspace --workdir /workspace bufbuild/buf +DOCKER := $(shell which docker) +DOCKER_BUF := $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace bufbuild/buf export GO111MODULE = on @@ -112,26 +113,26 @@ $(BUILDDIR)/: mkdir -p $(BUILDDIR)/ build-simd-all: go.sum - docker rm latest-build || true - docker run --volume=$(CURDIR):/sources:ro \ + $(DOCKER) rm latest-build || true + $(DOCKER) run --volume=$(CURDIR):/sources:ro \ --env TARGET_PLATFORMS='linux/amd64 darwin/amd64 linux/arm64 windows/amd64' \ --env APP=simd \ --env VERSION=$(VERSION) \ --env COMMIT=$(COMMIT) \ --env LEDGER_ENABLED=$(LEDGER_ENABLED) \ --name latest-build cosmossdk/rbuilder:latest - docker cp -a latest-build:/home/builder/artifacts/ $(CURDIR)/ + $(DOCKER) cp -a latest-build:/home/builder/artifacts/ $(CURDIR)/ build-simd-linux: go.sum $(BUILDDIR)/ - docker rm latest-build || true - docker run --volume=$(CURDIR):/sources:ro \ + $(DOCKER) rm latest-build || true + $(DOCKER) run --volume=$(CURDIR):/sources:ro \ --env TARGET_PLATFORMS='linux/amd64' \ --env APP=simd \ --env VERSION=$(VERSION) \ --env COMMIT=$(COMMIT) \ --env LEDGER_ENABLED=false \ --name latest-build cosmossdk/rbuilder:latest - docker cp -a latest-build:/home/builder/artifacts/ $(CURDIR)/ + $(DOCKER) cp -a latest-build:/home/builder/artifacts/ $(CURDIR)/ cp artifacts/simd-*-linux-amd64 $(BUILDDIR)/simd cosmovisor: @@ -333,12 +334,12 @@ format: DEVDOC_SAVE = docker commit `docker ps -a -n 1 -q` devdoc:local devdoc-init: - docker run -it -v "$(CURDIR):/go/src/github.com/cosmos/cosmos-sdk" -w "/go/src/github.com/cosmos/cosmos-sdk" tendermint/devdoc echo + $(DOCKER) run -it -v "$(CURDIR):/go/src/github.com/cosmos/cosmos-sdk" -w "/go/src/github.com/cosmos/cosmos-sdk" tendermint/devdoc echo # TODO make this safer $(call DEVDOC_SAVE) devdoc: - docker run -it -v "$(CURDIR):/go/src/github.com/cosmos/cosmos-sdk" -w "/go/src/github.com/cosmos/cosmos-sdk" devdoc:local bash + $(DOCKER) run -it -v "$(CURDIR):/go/src/github.com/cosmos/cosmos-sdk" -w "/go/src/github.com/cosmos/cosmos-sdk" devdoc:local bash devdoc-save: # TODO make this safer @@ -360,17 +361,17 @@ proto-all: proto-format proto-lint proto-check-breaking proto-gen proto-gen: @echo "Generating Protobuf files" - docker run -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen sh ./scripts/protocgen.sh + $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen sh ./scripts/protocgen.sh proto-format: @echo "Formatting Protobuf files" - docker run -v $(CURDIR):/workspace \ + $(DOCKER) run --rm -v $(CURDIR):/workspace \ --workdir /workspace tendermintdev/docker-build-proto \ find ./ -not -path "./third_party/*" -name *.proto -exec clang-format -i {} \; # This generates the SDK's custom wrapper for google.protobuf.Any. It should only be run manually when needed proto-gen-any: - docker run -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen sh ./scripts/protocgen-any.sh + $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen sh ./scripts/protocgen-any.sh proto-swagger-gen: @./scripts/protoc-swagger-gen.sh @@ -440,8 +441,8 @@ proto-update-deps: # Run a 4-node testnet locally localnet-start: build-linux localnet-stop - $(if $(shell docker inspect -f '{{ .Id }}' cosmossdk/simd-env 2>/dev/null),$(info found image cosmossdk/simd-env),$(MAKE) -C contrib/images simd-env) - if ! [ -f build/node0/simd/config/genesis.json ]; then docker run --rm \ + $(if $(shell $(DOCKER) inspect -f '{{ .Id }}' cosmossdk/simd-env 2>/dev/null),$(info found image cosmossdk/simd-env),$(MAKE) -C contrib/images simd-env) + if ! [ -f build/node0/simd/config/genesis.json ]; then $(DOCKER) run --rm \ --user $(shell id -u):$(shell id -g) \ -v $(BUILDDIR):/simd:Z \ -v /etc/group:/etc/group:ro \