diff --git a/Dockerfile b/Dockerfile
index 6d1c574152e4c4083600d2e9b2e060f9645481c3..3a36d1573d78c7c85e03bd087746a058170e66ba 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -9,7 +9,7 @@ COPY . .
 RUN GOOS=linux go build -o gnmi-target ./main.go
 
 FROM alpine:latest
-RUN apk add --no-cache git iproute2 iptables dumb-init coreutils
+RUN apk add --no-cache git iproute2 iptables dumb-init coreutils bash
 COPY --from=builder /build/gnmi-target /usr/bin/gnmi-target
 EXPOSE 7030
 ENTRYPOINT ["dumb-init", "--"]
diff --git a/os_clients/ubuntu/ubuntu.go b/os_clients/ubuntu/ubuntu.go
index 264db2a9d633d4e59ec0332b704e1ccd2add2b04..b70609519e150639a176d877649cc1948aefb79a 100644
--- a/os_clients/ubuntu/ubuntu.go
+++ b/os_clients/ubuntu/ubuntu.go
@@ -15,25 +15,11 @@ import (
 )
 
 type OsclientUbuntu struct {
-	gt   *gnmitargetygot.Gnmitarget
-	root string
-}
-
-func getHostPrefix() (string, error) {
-	path := "/host"
-	_, err := os.Stat(path)
-	if err == nil {
-		return "/host", nil
-	}
-	if os.IsNotExist(err) {
-		return "", nil
-	}
-	return "", err
+	gt *gnmitargetygot.Gnmitarget
 }
 
 func NewOsclientUbuntu() *OsclientUbuntu {
 	client := new(OsclientUbuntu)
-	client.root, _ = getHostPrefix()
 	return client
 }
 
@@ -95,10 +81,15 @@ func (ou *OsclientUbuntu) getSystemInformationen(gt *gnmitargetygot.Gnmitarget)
 
 	// Create Config
 	system.Hostname = ygot.String(name)
+	system.CurrentDatetime = ygot.String(time.Now().Format(time.RFC3339))
+	o, _ := os.Stat("/proc/")
+	system.BootTime = ygot.Uint64(uint64(o.ModTime().UTC().UnixNano()))
 
 	// Create Clock
 	system.Clock = system.GetOrCreateClock()
-	zonename, _ := exec.Command("realpath", "--relative-to", ou.root+"/usr/share/zoneinfo", "/etc/localtime").Output()
+	output, _ := exec.Command("realpath", "--relative-to=/usr/share/zoneinfo", "/etc/localtime").Output()
+	ss := strings.Split(string(output), " ")
+	zonename := ss[len(ss)-1]
 	system.Clock.TimezoneName = ygot.String(strings.TrimSuffix(string(zonename), "\n"))
 
 	//validate struct