From 1f022d9fbac0d2f692f525dbd383023abbf6713e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Cluseau?= Date: Thu, 19 Nov 2020 17:04:45 +0100 Subject: [PATCH] bind /boot if mounted --- Dockerfile | 4 ++-- main.go | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1ca4b29..d253ffd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ # ------------------------------------------------------------------------ -from mcluseau/golang-builder:1.14.0 as build +from mcluseau/golang-builder:1.15.5 as build # ------------------------------------------------------------------------ -from alpine:3.11.3 +from alpine:3.12 env busybox_v=1.28.1-defconfig-multiarch \ arch=x86_64 diff --git a/main.go b/main.go index bd24f6b..c651a85 100644 --- a/main.go +++ b/main.go @@ -138,11 +138,15 @@ func main() { mount("overlay", "/system", "overlay", rootMountFlags, "lowerdir="+strings.Join(lowers, ":")+",upperdir=/changes/upperdir,workdir=/changes/workdir") - // mount("/boot", "/system/boot", "", syscall.MS_BIND, "") - if layersInMemory && bootMounted { - if err := syscall.Unmount("/boot", 0); err != nil { - log.Print("WARNING: failed to unmount /boot: ", err) - time.Sleep(2 * time.Second) + if bootMounted { + if layersInMemory { + if err := syscall.Unmount("/boot", 0); err != nil { + log.Print("WARNING: failed to unmount /boot: ", err) + time.Sleep(2 * time.Second) + } + + } else { + mount("/boot", "/system/boot", "", syscall.MS_BIND, "") } }