Makefile 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. DOCKER_BUILD_REGISTRY=ghcr.io
  2. DOCKER_BUILD_ORG=opendevin
  3. DOCKER_BUILD_REPO=opendevin
  4. DOCKER_BUILD_TAG=v0.2
  5. FULL_IMAGE=$(DOCKER_BUILD_REGISTRY)/$(DOCKER_BUILD_ORG)/$(DOCKER_BUILD_REPO):$(DOCKER_BUILD_TAG)
  6. LATEST_FULL_IMAGE=$(DOCKER_BUILD_REGISTRY)/$(DOCKER_BUILD_ORG)/$(DOCKER_BUILD_REPO):latest
  7. MAJOR_VERSION=$(shell echo $(DOCKER_BUILD_TAG) | cut -d. -f1)
  8. MAJOR_FULL_IMAGE=$(DOCKER_BUILD_REGISTRY)/$(DOCKER_BUILD_ORG)/$(DOCKER_BUILD_REPO):$(MAJOR_VERSION)
  9. MINOR_VERSION=$(shell echo $(DOCKER_BUILD_TAG) | cut -d. -f1,2)
  10. MINOR_FULL_IMAGE=$(DOCKER_BUILD_REGISTRY)/$(DOCKER_BUILD_ORG)/$(DOCKER_BUILD_REPO):$(MINOR_VERSION)
  11. # normally, for local build testing or development. use cross platform build for sharing images to others.
  12. build:
  13. docker build -f Dockerfile -t ${FULL_IMAGE} -t ${LATEST_FULL_IMAGE} ..
  14. push:
  15. docker push ${FULL_IMAGE} ${LATEST_FULL_IMAGE}
  16. test:
  17. docker buildx build --platform linux/amd64 \
  18. -t ${FULL_IMAGE} -t ${LATEST_FULL_IMAGE} --load -f Dockerfile ..
  19. # cross platform build, you may need to manually stop the buildx(buildkit) container
  20. all:
  21. docker buildx build --platform linux/amd64,linux/arm64 \
  22. -t ${FULL_IMAGE} -t ${LATEST_FULL_IMAGE} -t ${MINOR_FULL_IMAGE} --push -f Dockerfile ..
  23. get-full-image:
  24. @echo ${FULL_IMAGE}