1################################################################################ 2# 3# Build the oci image 4# 5################################################################################ 6 7ROOTFS_OCI_DEPENDENCIES = host-sloci-image 8 9# architecture - take it from Go 10OCI_SLOCI_IMAGE_OPTS = --arch $(GO_GOARCH) 11 12# architecture variant (typically used only for arm) 13OCI_SLOCI_IMAGE_OPTS += $(and $(GO_GOARM),--arch-variant v$(GO_GOARM)) 14 15# entrypoint 16OCI_ENTRYPOINT = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENTRYPOINT)) 17ifneq ($(OCI_ENTRYPOINT),) 18OCI_SLOCI_IMAGE_OPTS += --entrypoint "$(OCI_ENTRYPOINT)" 19endif 20 21# entrypoint arguments 22OCI_ENTRYPOINT_ARGS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS)) 23ifneq ($(OCI_ENTRYPOINT_ARGS),) 24OCI_SLOCI_IMAGE_OPTS += --cmd "$(OCI_ENTRYPOINT_ARGS)" 25endif 26 27# author 28OCI_AUTHOR = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_AUTHOR)) 29ifneq ($(OCI_AUTHOR),) 30OCI_SLOCI_IMAGE_OPTS += --author "$(OCI_AUTHOR)" 31endif 32 33# username or UID 34OCI_UID = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_UID)) 35ifneq ($(OCI_UID),) 36OCI_SLOCI_IMAGE_OPTS += --user "$(OCI_UID)" 37endif 38 39# labels 40OCI_LABELS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_LABELS)) 41ifneq ($(OCI_LABELS),) 42OCI_SLOCI_IMAGE_OPTS += \ 43 $(foreach label,$(OCI_LABELS),--label "$(label)") 44endif 45 46# environment variables 47OCI_ENV_VARS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENV_VARS)) 48ifneq ($(OCI_ENV_VARS),) 49OCI_SLOCI_IMAGE_OPTS += \ 50 $(foreach var,$(OCI_ENV_VARS),--env "$(var)") 51endif 52 53# working directory 54OCI_WORKDIR = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_WORKDIR)) 55ifneq ($(OCI_WORKDIR),) 56OCI_SLOCI_IMAGE_OPTS += --working-dir "$(OCI_WORKDIR)" 57endif 58 59# ports 60OCI_PORTS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_PORTS)) 61ifneq ($(OCI_PORTS),) 62OCI_SLOCI_IMAGE_OPTS += \ 63 $(foreach port,$(OCI_PORTS),--port "$(port)") 64endif 65 66# tag 67OCI_TAG = $(or $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_TAG)),latest) 68 69# enable tar archive 70ifeq ($(BR2_TARGET_ROOTFS_OCI_ARCHIVE),y) 71OCI_SLOCI_IMAGE_OPTS += --tar 72endif 73 74define ROOTFS_OCI_CMD 75 rm -rf $(BINARIES_DIR)/rootfs-oci 76 $(HOST_DIR)/bin/sloci-image $(OCI_SLOCI_IMAGE_OPTS) $(TARGET_DIR) \ 77 $(BINARIES_DIR)/rootfs-oci:$(OCI_TAG) 78endef 79 80$(eval $(rootfs)) 81