mirror of
https://github.com/linuxkit/linuxkit.git
synced 2026-04-04 20:24:49 +00:00
This was missed when things were renamed. The intention with this code was (apparently) to provide a (pseudo)unique hostname in the case where something more specific was not provided (e.g. by DHCP). Make this a little clearer by using '(none)' rather than 'linuxkit' as the default, in the normal case this will be overwritten by something more specific and if it isn't we will change it to something somewhat unique derived from the MAC address (as before). nb: '(none)' is already used by Debian so I think it is a safe choice as the sentinel value. The use of both CONFIG_DEFAULT_HOSTNAME and the explicit /etc/hostname from mkimage.sh is likely to be redundant in some cases, but neither seems to completely cover all cases so keep both. Signed-off-by: Ian Campbell <ian.campbell@docker.com>
93 lines
3.4 KiB
Makefile
93 lines
3.4 KiB
Makefile
DEBUG ?= 0
|
|
|
|
all: bzImage tag
|
|
|
|
# We push the image to hub twice, once with the full kernel version of
|
|
# "mobylinux/kernel:<kernel version>.<major version>.<minor version>-<n>",
|
|
# where "<n>" is a monotonically increasing config number, and as
|
|
# "mobylinux/kernel:<kernel version>.<major version>.x". This version
|
|
# number is stored in IMAGE_VERSION.
|
|
#
|
|
# We expect most users to us the "<kernel version>.<major version>.x"
|
|
# variant as this simply is the latest version of a given major kernel
|
|
# version. This version number is stored in IMAGE_MAJOR_VERSION.
|
|
#
|
|
# For IMAGE_VERSION, the "<n>" must be increased whenever
|
|
# the kernel config or the patches change. We don't expect this to
|
|
# happen very often as the minor version number gets update quite
|
|
# frequently.
|
|
#
|
|
# IMAGE_VERSION is used to determine if a new image should be pushed to hub.
|
|
ifeq ($(KERNEL),v4.4)
|
|
KERNEL_VERSION=4.4.61
|
|
IMAGE_VERSION=$(KERNEL_VERSION)-1
|
|
IMAGE_MAJOR_VERSION=4.4.x
|
|
DEPS=Dockerfile.4.4 Makefile kernel_config kernel_config.debug kernel_config.4.4 patches-4.4
|
|
else
|
|
ifeq ($(KERNEL),v4.10)
|
|
KERNEL_VERSION=4.10.10
|
|
IMAGE_VERSION=$(KERNEL_VERSION)-1
|
|
IMAGE_MAJOR_VERSION=4.10.x
|
|
DEPS=Dockerfile.4.10 Makefile kernel_config kernel_config.debug patches-4.10
|
|
else
|
|
KERNEL_VERSION=4.9.22
|
|
IMAGE_VERSION=$(KERNEL_VERSION)-1
|
|
IMAGE_MAJOR_VERSION=4.9.x
|
|
DEPS=Dockerfile Makefile kernel_config kernel_config.debug patches-4.9
|
|
endif
|
|
endif
|
|
|
|
kernel.tag: $(DEPS)
|
|
BUILD=$$( tar cf - $^ | docker build -f $< --build-arg DEBUG=$(DEBUG) --build-arg KERNEL_VERSION=$(KERNEL_VERSION) -q - ) && [ -n "$$BUILD" ] && echo "Built $$BUILD" && echo "$$BUILD" > $@
|
|
|
|
bzImage: kernel.tag
|
|
rm -rf etc/kernel-patches
|
|
mkdir -p x86_64 etc lib usr sbin etc/kernel-patches
|
|
docker run --rm --net=none --log-driver=none $(shell cat kernel.tag) tar cf - bzImage kernel-dev.tar kernel-headers.tar vmlinux kernel-modules.tar | tar xf - -C x86_64
|
|
cp x86_64/kernel-modules.tar kernel.tar
|
|
cp x86_64/bzImage $@
|
|
|
|
.PHONY: image push tag
|
|
|
|
MEDIA_TOYBOX=linuxkit/toybox-media:d7e82a7d19ccc84c9071fa7a88ecaa58ae958f7c@sha256:4c7d25f2be2429cd08417c36e04161cb924e46f3e419ee33a0aa9ff3a0942e02
|
|
|
|
IMAGE=kernel
|
|
|
|
default: push
|
|
|
|
Dockerfile.media:
|
|
printf "FROM $(MEDIA_TOYBOX)\nADD . /\n" > $@
|
|
|
|
image: Dockerfile.media bzImage kernel.tar $(DEPS)
|
|
tar cf - $^ | docker build --no-cache -t $(IMAGE):build -f Dockerfile.media -
|
|
|
|
push: image
|
|
docker pull linuxkit/$(IMAGE):$(IMAGE_VERSION) || \
|
|
(docker tag $(IMAGE):build linuxkit/$(IMAGE):$(IMAGE_VERSION) && \
|
|
docker push linuxkit/$(IMAGE):$(IMAGE_VERSION) && \
|
|
docker tag $(IMAGE):build linuxkit/$(IMAGE):$(IMAGE_MAJOR_VERSION) && \
|
|
docker push linuxkit/$(IMAGE):$(IMAGE_MAJOR_VERSION))
|
|
docker rmi $(IMAGE):build
|
|
rm -f hash
|
|
|
|
sign: image
|
|
DOCKER_CONTENT_TRUST=1 docker pull linuxkit/$(IMAGE):$(IMAGE_VERSION) || \
|
|
(docker tag $(IMAGE):build linuxkit/$(IMAGE):$(IMAGE_VERSION) && \
|
|
DOCKER_CONTENT_TRUST=1 docker push linuxkit/$(IMAGE):$(IMAGE_VERSION) && \
|
|
docker tag $(IMAGE):build linuxkit/$(IMAGE):$(IMAGE_MAJOR_VERSION) && \
|
|
DOCKER_CONTENT_TRUST=1 docker push linuxkit/$(IMAGE):$(IMAGE_MAJOR_VERSION))
|
|
docker rmi $(IMAGE):build
|
|
rm -f hash
|
|
|
|
tag: image
|
|
(docker tag $(IMAGE):build linuxkit/$(IMAGE):$(IMAGE_VERSION) && \
|
|
docker tag $(IMAGE):build linuxkit/$(IMAGE):$(IMAGE_MAJOR_VERSION))
|
|
docker rmi $(IMAGE):build
|
|
rm -f hash
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf x86_64 lib usr sbin kernel.tag Dockerfile.media bzImage kernel.tar
|
|
|
|
.DELETE_ON_ERROR:
|