[Buildroot] [PATCH 1/1] package/docker-engine: add disable pivot_root option

Frank Sigalas frasigal at gmail.com
Thu Jun 13 20:47:09 UTC 2019


Sets the environment variable DOCKER_RAMDISK before starting dockerd.

Signed-off-by: Frank Sigalas <frasigal at gmail.com>
---
 package/docker-engine/Config.in          |  5 +++++
 package/docker-engine/S60dockerd-ramdisk | 38 ++++++++++++++++++++++++++++++++
 package/docker-engine/docker-engine.mk   |  8 ++++++-
 3 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 package/docker-engine/S60dockerd-ramdisk

diff --git a/package/docker-engine/Config.in b/package/docker-engine/Config.in
index 1fd229f..5405b3d 100644
--- a/package/docker-engine/Config.in
+++ b/package/docker-engine/Config.in
@@ -48,6 +48,11 @@ config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS
 	help
 	  Build the vfs filesystem driver for Docker.
 
+config BR2_PACKAGE_DOCKER_ENGINE_RAMDISK
+	bool "disable pivot_root"
+	help
+	  Disable pivot_root to run docker in ramdisk.
+
 endif
 
 comment "docker-engine needs a glibc or musl toolchain w/ threads"
diff --git a/package/docker-engine/S60dockerd-ramdisk b/package/docker-engine/S60dockerd-ramdisk
new file mode 100644
index 0000000..a1092b6
--- /dev/null
+++ b/package/docker-engine/S60dockerd-ramdisk
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+NAME=dockerd
+DAEMON=/usr/bin/$NAME
+PIDFILE=/var/run/$NAME.pid
+DAEMON_ARGS=""
+
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME $1
+
+do_start() {
+        echo -n "Starting $NAME: "
+        start-stop-daemon --start --quiet --background --make-pidfile \
+		--pidfile $PIDFILE --exec /usr/bin/env DOCKER_RAMDISK=1 $DAEMON -- $DAEMON_ARGS \
+                && echo "OK" || echo "FAIL"
+}
+
+do_stop() {
+        echo -n "Stopping $NAME: "
+        start-stop-daemon --stop --quiet --pidfile $PIDFILE \
+                && echo "OK" || echo "FAIL"
+}
+
+case "$1" in
+        start)
+                do_start
+                ;;
+        stop)
+                do_stop
+                ;;
+        restart)
+                do_stop
+                sleep 1
+                do_start
+                ;;
+	*)
+                echo "Usage: $0 {start|stop|restart}"
+                exit 1
+esac
diff --git a/package/docker-engine/docker-engine.mk b/package/docker-engine/docker-engine.mk
index 50d4129..d4608fb 100644
--- a/package/docker-engine/docker-engine.mk
+++ b/package/docker-engine/docker-engine.mk
@@ -51,6 +51,12 @@ else
 DOCKER_ENGINE_TAGS += exclude_graphdriver_vfs
 endif
 
+ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_RAMDISK),y)
+DOCKER_ENGINE_INIT_SCRIPT = S60dockerd-ramdisk
+else
+DOCKER_ENGINE_INIT_SCRIPT = S60dockerd
+endif
+
 DOCKER_ENGINE_INSTALL_BINS = $(notdir $(DOCKER_ENGINE_BUILD_TARGETS))
 
 define DOCKER_ENGINE_RUN_AUTOGEN
@@ -74,7 +80,7 @@ define DOCKER_ENGINE_INSTALL_INIT_SYSTEMD
 endef
 
 define DOCKER_ENGINE_INSTALL_INIT_SYSV
-	$(INSTALL) -D -m 755 package/docker-engine/S60dockerd \
+	$(INSTALL) -D -m 755 package/docker-engine/$(DOCKER_ENGINE_INIT_SCRIPT) \
 		$(TARGET_DIR)/etc/init.d/S60dockerd
 endef
 
-- 
2.7.4




More information about the buildroot mailing list