sandbox: test docker connection & pull image before starting workers

The docker pull added in CL 214178 was too late.

The docker connection test can be whenever, but it's better to test it
before we start failing for other reasons resulting from a lack of
working Docker.

Change-Id: Iff7120ac722c1c583ade98b8f27774d7d6293bf5
Reviewed-on: https://go-review.googlesource.com/c/playground/+/214237
Reviewed-by: Alexander Rakoczy <alex@golang.org>
diff --git a/sandbox/sandbox.go b/sandbox/sandbox.go
index 204fee4..9cbb73a 100644
--- a/sandbox/sandbox.go
+++ b/sandbox/sandbox.go
@@ -105,7 +105,6 @@
 
 	readyContainer = make(chan *Container, *numWorkers)
 	runSem = make(chan struct{}, *numWorkers)
-	go makeWorkers()
 	go handleSignals()
 
 	if out, err := exec.Command("docker", "version").CombinedOutput(); err != nil {
@@ -125,6 +124,9 @@
 	http.HandleFunc("/healthz", healthHandler)
 	http.HandleFunc("/", rootHandler)
 	http.HandleFunc("/run", runHandler)
+
+	go makeWorkers()
+
 	log.Fatal(http.ListenAndServe(*listenAddr, nil))
 }