1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- # ==============================================================================
- # Makefile helper functions for docker image
- #
- DOCKER :=docker
- DOCKER_SUPPORTED_API_VERSION ?=1.32
- REGISTRY_PREFIX ?= docker.hgpark.cn/yfhub
- BASE_IMAGE = centos:centos8
- EXTRA_ARGS ?= --no-cache
- _DOCKER_BUILD_EXTRA_ARGS :=
- # 镜像版本
- TAG :=3.0
- # 镜像私有仓库
- REGISTRY :=harbor.sxidc.com/yfhub
- # 镜像名称
- NAME :=pcm
- # 私有仓库镜像名称 必须是这种格式
- IMAGE_NAME :=$(REGISTRY)/$(NAME)
- ifdef HTTP_PROXY
- _DOCKER_BUILD_EXTRA_ARGS += --build-arg HTTP_PROXY=${HTTP_PROXY}
- endif
- ifneq ($(EXTRA_ARGS), )
- _DOCKER_BUILD_EXTRA_ARGS += $(EXTRA_ARGS)
- endif
- IMAGES_DIR ?= $(wildcard ${ROOT_DIR}/build/docker/*)
- IMAGES ?= $(filter-out tools,$(foreach image,${IMAGES_DIR},$(notdir ${image})))
- ifeq (${IMAGES},)
- $(error Could not determine IMAGES, set ROOT_DIR or run in source dir)
- endif
- .PHONY: image.verify
- image.verify:
- $(eval API_VERSION := $(shell $(DOCKER) version | grep -E 'API version: {1,6}[0-9]' | head -n1 | awk '{print $$3} END { if (NR==0) print 0}' ))
- $(eval PASS := $(shell echo "$(API_VERSION) > $(DOCKER_SUPPORTED_API_VERSION)" | bc))
- @if [ $(PASS) -ne 1 ]; then \
- $(DOCKER) -v ;\
- echo "Unsupported docker version. Docker API version should be greater than $(DOCKER_SUPPORTED_API_VERSION)"; \
- exit 1; \
- fi
- .PHONY: image.daemon.verify
- image.daemon.verify:
- $(eval PASS := $(shell $(DOCKER) version | grep -q -E 'Experimental: {1,5}true' && echo 1 || echo 0))
- @if [ $(PASS) -ne 1 ]; then \
- echo "Experimental features of Docker daemon is not enabled. Please add \"experimental\": true in '/etc/docker/daemon.json' and then restart Docker daemon."; \
- exit 1; \
- fi
- .PHONY: image.build
- image.build: go.build.multiarch image.verify image.daemon.verify image.build.shell
- .PHONY: image.build.shell # 这里写的比较糙。没有使用变量
- image.build.shell:
- @cp $(OUTPUT_DIR)/platforms/linux/amd64/* $(ROOT_DIR)/build/docker/pcm
- docker build -t $(IMAGE_NAME) $(ROOT_DIR)/build/docker/pcm
- docker tag $(IMAGE_NAME) $(IMAGE_NAME):$(TAG)
- docker push $(IMAGE_NAME):$(TAG)
- @ rm -rf $(ROOT_DIR)/build/docker/pcm/pcm-server
|