Makefile•1.62 kB
# set version variable
VERSION = $(shell grep '^version' Cargo.toml | head -n1 | cut -d ' ' -f3 | sed 's/"//g')
ES_IMAGE = "docker.elastic.co/mcp/elasticsearch:$(VERSION)"
ES_IMAGE_LATEST = "docker.elastic.co/mcp/elasticsearch:latest"
AWS_IMAGE = "709825985650.dkr.ecr.us-east-1.amazonaws.com/elastic/mcp/elasticsearch:$(VERSION)"
help: ## Display help
@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)
.PHONY: docker-image
docker-image: ## Build a local docker image named es-mcp
docker build -t "es-mcp:$(VERSION)" .
.PHONY: docker-multiarch-image
docker-multiarch-image: docker-buildx-builder ## Build an amd64+arm64 docker image
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag $(ES_IMAGE) .
docker tag $(ES_IMAGE) $(ES_IMAGE_LATEST)
.PHONY: docker-image-aws
docker-image-aws: docker-buildx-builder ## Build an arm64 docker image using AWS-specific configuration
docker buildx build \
--platform linux/arm64 \
--file Dockerfile-8000 \
--tag $(AWS_IMAGE) .
.PHONY: docker-buildx-builder
docker-buildx-builder: ## Set up multi-arch Docker buildx builder
docker buildx create --use
.PHONY: docker-push-elastic
docker-push-elastic: docker-multiarch-image ## Push multi-arch image to docker.elastic.co
docker login \
-u "devtoolsmachine" \
-p "$(vault read -field=password secret/ci/elastic-mcp-server-elasticsearch/devtoolsmachine)" \
docker.elastic.co
docker push $(ES_IMAGE)
docker push $(ES_IMAGE_LATEST)
docker logout docker.elastic.co