github.com/xdlianrong208/docker-ce-comments@v17.12.1-ce-rc2+incompatible/components/cli/docker.Makefile (about)

     1  #
     2  # github.com/docker/cli
     3  #
     4  # Makefile for developing using Docker
     5  #
     6  
     7  DEV_DOCKER_IMAGE_NAME = docker-cli-dev$(IMAGE_TAG)
     8  LINTER_IMAGE_NAME = docker-cli-lint$(IMAGE_TAG)
     9  CROSS_IMAGE_NAME = docker-cli-cross$(IMAGE_TAG)
    10  VALIDATE_IMAGE_NAME = docker-cli-shell-validate$(IMAGE_TAG)
    11  MOUNTS = -v "$(CURDIR)":/go/src/github.com/docker/cli
    12  VERSION = $(shell cat VERSION)
    13  ENVVARS = -e VERSION=$(VERSION) -e GITCOMMIT -e PLATFORM
    14  
    15  # build docker image (dockerfiles/Dockerfile.build)
    16  .PHONY: build_docker_image
    17  build_docker_image:
    18  	docker build ${DOCKER_BUILD_ARGS} -t $(DEV_DOCKER_IMAGE_NAME) -f ./dockerfiles/Dockerfile.dev .
    19  
    20  # build docker image having the linting tools (dockerfiles/Dockerfile.lint)
    21  .PHONY: build_linter_image
    22  build_linter_image:
    23  	docker build ${DOCKER_BUILD_ARGS} -t $(LINTER_IMAGE_NAME) -f ./dockerfiles/Dockerfile.lint .
    24  
    25  .PHONY: build_cross_image
    26  build_cross_image:
    27  	docker build ${DOCKER_BUILD_ARGS} -t $(CROSS_IMAGE_NAME) -f ./dockerfiles/Dockerfile.cross .
    28  
    29  .PHONY: build_shell_validate_image
    30  build_shell_validate_image:
    31  	docker build -t $(VALIDATE_IMAGE_NAME) -f ./dockerfiles/Dockerfile.shellcheck .
    32  
    33  # build executable using a container
    34  binary: build_docker_image
    35  	docker run --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make binary
    36  
    37  build: binary
    38  
    39  # clean build artifacts using a container
    40  .PHONY: clean
    41  clean: build_docker_image
    42  	docker run --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make clean
    43  
    44  # run go test
    45  .PHONY: test-unit
    46  test-unit: build_docker_image
    47  	docker run --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make test-unit
    48  
    49  .PHONY: test
    50  test: test-unit test-e2e
    51  
    52  # build the CLI for multiple architectures using a container
    53  .PHONY: cross
    54  cross: build_cross_image
    55  	docker run --rm $(ENVVARS) $(MOUNTS) $(CROSS_IMAGE_NAME) make cross
    56  
    57  .PHONY: binary-windows
    58  binary-windows: build_cross_image
    59  	docker run --rm $(ENVVARS) $(MOUNTS) $(CROSS_IMAGE_NAME) make $@
    60  
    61  .PHONY: binary-osx
    62  binary-osx: build_cross_image
    63  	docker run --rm $(ENVVARS) $(MOUNTS) $(CROSS_IMAGE_NAME) make $@
    64  
    65  .PHONY: watch
    66  watch: build_docker_image
    67  	docker run --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make watch
    68  
    69  # start container in interactive mode for in-container development
    70  .PHONY: dev
    71  dev: build_docker_image
    72  	docker run -ti $(ENVVARS) $(MOUNTS) \
    73  		-v /var/run/docker.sock:/var/run/docker.sock \
    74  		$(DEV_DOCKER_IMAGE_NAME) ash
    75  
    76  shell: dev
    77  
    78  # run linters in a container
    79  .PHONY: lint
    80  lint: build_linter_image
    81  	docker run -ti $(ENVVARS) $(MOUNTS) $(LINTER_IMAGE_NAME)
    82  
    83  # download dependencies (vendor/) listed in vendor.conf, using a container
    84  .PHONY: vendor
    85  vendor: build_docker_image vendor.conf
    86  	docker run -ti --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make vendor
    87  
    88  dynbinary: build_cross_image
    89  	docker run -ti --rm $(ENVVARS) $(MOUNTS) $(CROSS_IMAGE_NAME) make dynbinary
    90  
    91  ## generate man pages from go source and markdown
    92  .PHONY: manpages
    93  manpages: build_docker_image
    94  	docker run -ti --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make manpages
    95  
    96  ## Generate documentation YAML files consumed by docs repo
    97  .PHONY: yamldocs
    98  yamldocs: build_docker_image
    99  	docker run -ti --rm $(ENVVARS) $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make yamldocs
   100  
   101  .PHONY: shellcheck
   102  shellcheck: build_shell_validate_image
   103  	docker run -ti --rm $(ENVVARS) $(MOUNTS) $(VALIDATE_IMAGE_NAME) make shellcheck
   104  
   105  .PHONY: test-e2e
   106  test-e2e: binary
   107  	./scripts/test/e2e/wrapper