mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-07-03 10:08:45 +08:00
Merge branch 'shared-mount' into 'master'
Draft: Fix make mount across containers See merge request redox-os/redox!1687
This commit is contained in:
commit
01a38be96f
16
mk/disk.mk
16
mk/disk.mk
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user