mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-19 09:16:29 +00:00
67 lines
1.6 KiB
Makefile
67 lines
1.6 KiB
Makefile
.PHONY: build push
|
|
|
|
ORG?=linuxkit
|
|
IMAGE=alpine
|
|
DEPS=packages
|
|
|
|
ARCH := $(shell uname -m)
|
|
DARCH := $(ARCH)
|
|
ifeq ($(ARCH), x86_64)
|
|
DEPS += packages.x86_64
|
|
DARCH = amd64
|
|
endif
|
|
ifeq ($(ARCH), aarch64)
|
|
DEPS += packages.aarch64
|
|
DARCH = arm64
|
|
endif
|
|
ifeq ($(ARCH), s390x)
|
|
DEPS += packages.s390x
|
|
endif
|
|
ifeq ($(ARCH), riscv64)
|
|
DEPS += packages.riscv64
|
|
DARCH = riscv64
|
|
endif
|
|
|
|
PLATFORM := linux/$(DARCH)
|
|
|
|
ORG?=linuxkit
|
|
IMAGE?=alpine
|
|
TAG?=$(shell git ls-tree --full-tree HEAD -- $(PWD) | awk '{print $$3}')
|
|
DIRTY?=$(shell git diff-index HEAD -- $(PWD))
|
|
ifneq ($(DIRTY),)
|
|
TAG := $(TAG)-dirty
|
|
endif
|
|
|
|
|
|
default: push
|
|
|
|
show-tag:
|
|
@echo "$(ORG)/$(IMAGE):$(TAG)"
|
|
|
|
iid: Dockerfile Makefile $(DEPS)
|
|
docker build --platform $(PLATFORM) --no-cache --iidfile iid .
|
|
|
|
hash: Makefile iid
|
|
docker run --rm --platform $(PLATFORM) $(shell cat iid) cat /etc/alpine-hash-arch > $@
|
|
|
|
versions.$(ARCH): Makefile hash iid
|
|
echo "# $(ORG)/$(IMAGE):$(shell cat hash)" > versions.$(ARCH)
|
|
docker run --rm --platform $(PLATFORM) $(shell cat iid) find /mirror -name '*.apk' -exec basename '{}' .apk \; | LANG=C sort | (echo '# automatically generated list of installed packages'; cat -) >> versions.$(ARCH)
|
|
|
|
push: hash iid versions.$(ARCH)
|
|
docker pull $(ORG)/$(IMAGE):$(shell cat hash) || \
|
|
(docker tag $(shell cat iid) $(ORG)/$(IMAGE):$(shell cat hash) && \
|
|
docker push $(ORG)/$(IMAGE):$(shell cat hash))
|
|
rm -f iid
|
|
|
|
push-manifest:
|
|
./push-manifest.sh $(ORG) $(IMAGE)
|
|
|
|
build: hash iid versions.$(ARCH)
|
|
docker pull $(ORG)/$(IMAGE):$(shell cat hash) || \
|
|
docker tag $(shell cat iid) $(ORG)/$(IMAGE):$(shell cat hash)
|
|
rm -f iid
|
|
|
|
clean:
|
|
rm -f hash iid
|