diff --git a/apps/app-runner/Dockerfile.deno.2.2.0 b/apps/app-runner/Dockerfile.deno.2.2.0
index 6145bf9..36c9cfb 100644
--- a/apps/app-runner/Dockerfile.deno.2.2.0
+++ b/apps/app-runner/Dockerfile.deno.2.2.0
@@ -1,10 +1,8 @@
-FROM denoland/deno:alpine-2.2.0
+FROM denoland/deno:debian-2.2.0
 
 ARG TARGETARCH
 
-RUN apk update
-# TODO(gio): git and openssh is not generally required, we need it for canvas.
-# Instead allow dodo-app definition to include required tool list.
-RUN apk add openssh-keygen openssh
+RUN apt-get update -y
+RUN apt-get install -y openssl
 
 COPY app-runner_${TARGETARCH} /usr/bin/app-runner
diff --git a/apps/app-runner/Dockerfile.nextjs.deno.2.0.0 b/apps/app-runner/Dockerfile.nextjs.deno.2.0.0
index 98f62ed..8acc5b9 100644
--- a/apps/app-runner/Dockerfile.nextjs.deno.2.0.0
+++ b/apps/app-runner/Dockerfile.nextjs.deno.2.0.0
@@ -2,4 +2,7 @@
 
 ARG TARGETARCH
 
+RUN apt-get update -y
+RUN apt-get install -y openssl
+
 COPY app-runner_${TARGETARCH} /usr/bin/app-runner
diff --git a/apps/app-runner/server.go b/apps/app-runner/server.go
index a65cb0a..6efd222 100644
--- a/apps/app-runner/server.go
+++ b/apps/app-runner/server.go
@@ -122,6 +122,7 @@
 }
 
 func (s *Server) run() error {
+	logM := io.MultiWriter(os.Stdout, s.logs)
 	newDir := s.appDir
 	commands := []command{}
 	if !s.agentMode {
@@ -135,13 +136,13 @@
 		if _, err := os.Stat(filepath.Join(newDir, ".git")); err != nil && os.IsNotExist(err) {
 			commit, err := CloneRepositoryBranch(s.repoAddr, s.branch, s.rootDir, s.signer, newDir)
 			if err != nil {
-				fmt.Fprintf(s.logs, "!!! dodo: Failed to clone repository\n")
+				fmt.Fprintf(logM, "!!! dodo: Failed to clone repository: %s\n", err)
 				s.status = &Status{
 					Commit: nil,
 				}
 				return err
 			}
-			fmt.Fprintf(s.logs, "!!! dodo: Successfully cloned repository %s\n", commit.Hash)
+			fmt.Fprintf(logM, "!!! dodo: Successfully cloned repository %s\n", commit.Hash)
 			s.status = &Status{
 				Commit:   commit,
 				Commands: []CommandStatus{},
@@ -201,7 +202,6 @@
 			State:   "waiting",
 		})
 	}
-	logM := io.MultiWriter(os.Stdout, s.logs)
 	for i, c := range commands {
 		if i > 0 {
 			s.status.Commands[i-1].State = "success"
@@ -215,8 +215,7 @@
 			Stderr: logM,
 		}
 		cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
-		fmt.Printf("Running: %s\n", c)
-		fmt.Fprintf(s.logs, "!!! dodo: Running: %s\n", c)
+		fmt.Fprintf(logM, "!!! dodo: Running: %s\n", c)
 		s.status.Commands[i].State = "running"
 		if i < len(commands)-1 {
 			if err := cmd.Run(); err != nil {
