Fix make mount across containers

This commit is contained in:
Wildan M 2025-11-18 16:57:05 +07:00
parent a000dd6a38
commit 8d7264debc
2 changed files with 18 additions and 3 deletions

View File

@ -58,15 +58,27 @@ else
mv $@.partial $@
endif
DAEMONIZE_MOUNT=0
mount: $(HOST_FSTOOLS) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
podman unshare mount --make-shared --bind $(ROOT) $(ROOT)
touch $(MOUNT_DIR).tag
$(PODMAN_RUN_DETACHED) make $@ DAEMONIZE_MOUNT=1
sleep 2
else
mkdir -p $(MOUNT_DIR)
$(REDOXFS) $(BUILD)/harddrive.img $(MOUNT_DIR)
ifeq ($(DAEMONIZE_MOUNT),1)
@while test -f $(MOUNT_DIR).tag; do \
sleep 1; \
done
make unmount
else
sleep 2
pgrep redoxfs
endif
endif
mount_extra: $(HOST_FSTOOLS) FORCE
ifeq ($(PODMAN_BUILD),1)
@ -90,7 +102,7 @@ endif
unmount: FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
rm -f $(MOUNT_DIR).tag
else
sync
-$(FUMOUNT) $(MOUNT_DIR) || true

View File

@ -10,20 +10,23 @@ CONTAINER_WORKDIR?=/mnt/redox
USE_SELINUX=1
ifeq ($(USE_SELINUX),1)
PODMAN_VOLUME_FLAG=:Z
PORMAN_MOUNT_FLAG=,relabel=private
else
PODMAN_VOLUME_FLAG=
PORMAN_MOUNT_FLAG=
endif
## Podman Home Directory
PODMAN_HOME?=$(ROOT)/build/podman
## Podman command with its many arguments
PODMAN_VOLUMES?=--volume $(ROOT):$(CONTAINER_WORKDIR)$(PODMAN_VOLUME_FLAG) --volume $(PODMAN_HOME):/root$(PODMAN_VOLUME_FLAG)
PODMAN_VOLUMES?=--mount type=bind,source=$(ROOT),destination=$(CONTAINER_WORKDIR),bind-propagation=rshared$(PORMAN_MOUNT_FLAG) --volume $(PODMAN_HOME):/root$(PODMAN_VOLUME_FLAG)
PODMAN_ENV?=--env PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0
PODMAN_CONFIG?=--env ARCH=$(ARCH) --env BOARD=$(BOARD) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG) --env PREFIX_BINARY=$(PREFIX_BINARY) \
--env CI=$(CI) --env COOKBOOK_MAKE_JOBS=$(COOKBOOK_MAKE_JOBS) --env COOKBOOK_LOGS=$(COOKBOOK_LOGS) --env COOKBOOK_VERBOSE=$(COOKBOOK_VERBOSE) \
--env REPO_APPSTREAM=$(REPO_APPSTREAM) --env REPO_BINARY=$(REPO_BINARY) --env REPO_NONSTOP=$(REPO_NONSTOP) --env REPO_OFFLINE=$(REPO_OFFLINE)
PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --interactive --tty --cap-add SYS_ADMIN --device /dev/fuse --network=host --env TERM=$(TERM)
PODMAN_RUN?=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG)
PODMAN_RUN_DETACHED?=podman run -d $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG)
container_shell: build/container.tag
ifeq ($(PODMAN_BUILD),1)