|
1 | | - |
| 1 | +# set version variable |
| 2 | +VERSION = $(shell grep '^version' Cargo.toml | head -n1 | cut -d ' ' -f3 | sed 's/"//g') |
| 3 | +ES_IMAGE = "docker.elastic.co/mcp/elasticsearch:$(VERSION)" |
| 4 | +ES_IMAGE_LATEST = "docker.elastic.co/mcp/elasticsearch:latest" |
| 5 | +AWS_IMAGE = "709825985650.dkr.ecr.us-east-1.amazonaws.com/elastic/mcp/elasticsearch:$(VERSION)" |
2 | 6 |
|
3 | 7 | help: ## Display help |
4 | 8 | @awk 'BEGIN {FS = ":.*##"; printf "Usage:\n make <target>\n"} /^[a-zA-Z_-]+:.*?##/ { printf " %-15s %s\n", $$1, $$2 } /^##@/ { printf "\n%s\n", substr($$0, 5) } ' $(MAKEFILE_LIST) |
5 | 9 |
|
6 | | -docker-image: ## Build a docker image with the 'es-mcp' tag |
7 | | - docker build -t es-mcp . |
| 10 | +.PHONY: docker-image |
| 11 | +docker-image: ## Build a local docker image named es-mcp |
| 12 | + docker build -t "es-mcp:$(VERSION)" . |
| 13 | + |
| 14 | +.PHONY: docker-multiarch-image |
| 15 | +docker-multiarch-image: docker-buildx-builder ## Build an amd64+arm64 docker image |
| 16 | + docker buildx build \ |
| 17 | + --platform linux/amd64,linux/arm64 \ |
| 18 | + --builder es-mcp-multi-arch \ |
| 19 | + --load \ |
| 20 | + --tag "$(ES_IMAGE)" . |
| 21 | + docker tag "$(ES_IMAGE)" "$(ES_IMAGE_LATEST)" |
| 22 | + |
| 23 | +.PHONY: docker-image-aws |
| 24 | +docker-image-aws: docker-buildx-builder ## Build an arm64 docker image using AWS-specific configuration |
| 25 | + docker buildx build \ |
| 26 | + --platform linux/arm64 \ |
| 27 | + --builder es-mcp-multi-arch \ |
| 28 | + --load \ |
| 29 | + --file Dockerfile-8000 \ |
| 30 | + --tag "$(AWS_IMAGE)" . |
| 31 | + |
| 32 | +.PHONY: docker-buildx-builder |
| 33 | +docker-buildx-builder: ## Set up multi-arch Docker buildx builder |
| 34 | + docker buildx ls | grep --silent es-mcp-multi-arch || \ |
| 35 | + docker buildx create \ |
| 36 | + --name es-mcp-multi-arch \ |
| 37 | + --driver docker-container \ |
| 38 | + --driver-opt default-load=true \ |
| 39 | + --platform linux/amd64,linux/arm64 \ |
| 40 | + --bootstrap |
8 | 41 |
|
9 | | -docker-multiarch-image: ## Build an amd64+arm64 docker image with the 'es-mcp' tag |
10 | | - docker buildx build --platform linux/amd64,linux/arm64 --tag es-mcp . |
| 42 | +.PHONY: docker-push-elastic |
| 43 | +docker-push-elastic: docker-multiarch-image ## Push multi-arch image to docker.elastic.co |
| 44 | + docker login \ |
| 45 | + -u "devtoolsmachine" \ |
| 46 | + -p "$(vault read -field=password secret/ci/elastic-mcp-server-elasticsearch/devtoolsmachine)" \ |
| 47 | + docker.elastic.co |
| 48 | + docker push "$(ES_IMAGE)" |
| 49 | + docker push "$(ES_IMAGE_LATEST)" |
| 50 | + docker logout docker.elastic.co |
0 commit comments