| # Copyright 2021 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # Builds docker images for the crosvm builders. |
| # Run the `upload` target to upload the images to the container registry |
| # (provided you are authorized to upload them). |
| # |
| # Images are always built with docker (since buildkit is a lot faster than |
| # podman/buildah). But we do automatically pull images into podman if podman |
| # is installed. |
| |
| export DOCKER_BUILDKIT=1 |
| |
| TAG_BASE=gcr.io/crosvm-packages |
| TAG_VERSION=$(shell cat image_tag) |
| |
| DOCKER ?= docker |
| |
| all: crosvm_builder crosvm_aarch64_builder |
| |
| upload: all |
| $(DOCKER) push $(TAG_BASE)/crosvm_base:$(TAG_VERSION) |
| $(DOCKER) push $(TAG_BASE)/crosvm_builder:$(TAG_VERSION) |
| $(DOCKER) push $(TAG_BASE)/crosvm_aarch64_builder:$(TAG_VERSION) |
| $(DOCKER) push $(TAG_BASE)/crosvm_test_vm_amd64:$(TAG_VERSION) |
| $(DOCKER) push $(TAG_BASE)/crosvm_test_vm_arm64:$(TAG_VERSION) |
| |
| crosvm_base: |
| cd $@ && $(DOCKER) build -t $(TAG_BASE)/$@:$(TAG_VERSION) . |
| |
| crosvm_builder: crosvm_base crosvm_test_vm_amd64 |
| cd $@ && $(DOCKER) build \ |
| -t $(TAG_BASE)/$@:$(TAG_VERSION) \ |
| --build-arg TAG=$(TAG_VERSION) \ |
| . |
| ifneq (, $(shell command -v podman)) |
| podman pull docker-daemon:$(TAG_BASE)/$@:$(TAG_VERSION) |
| endif |
| |
| crosvm_aarch64_builder: crosvm_base crosvm_test_vm_arm64 |
| cd $@ && $(DOCKER) build \ |
| -t $(TAG_BASE)/$@:$(TAG_VERSION) \ |
| --build-arg TAG=$(TAG_VERSION) \ |
| . |
| ifneq (, $(shell command -v podman)) |
| podman pull docker-daemon:$(TAG_BASE)/$@:$(TAG_VERSION) |
| endif |
| |
| crosvm_test_vm_amd64: |
| cd crosvm_test_vm && \ |
| $(DOCKER) build -t $(TAG_BASE)/$@:$(TAG_VERSION) --build-arg VM_ARCH=amd64 . |
| |
| crosvm_test_vm_arm64: |
| cd crosvm_test_vm && \ |
| $(DOCKER) build -t $(TAG_BASE)/$@:$(TAG_VERSION) --build-arg VM_ARCH=arm64 . |
| |
| .PHONY: all crosvm_base crosvm_builder crosvm_aarch64_builder |