deploy/kokoro.sh: use docker to get off 1.12

Run Go programs with docker so we can use a more recent Go version.
Kokoro uses 1.12 at present.

Also, increase directory and file permissions in gendb because docker
runs as root, and we have to give non-root processes access to the
directories and files it creates.

Change-Id: I5dae2ea93c6c14e627c33c738789c4ba3276017c
Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/384336
Trust: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Trust: Damien Neil <dneil@google.com>
Reviewed-by: Julie Qiu <julie@golang.org>
Reviewed-by: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: kokoro <noreply+kokoro@google.com>
diff --git a/deploy/kokoro.sh b/deploy/kokoro.sh
old mode 100644
new mode 100755
index 974106b..378a02b
--- a/deploy/kokoro.sh
+++ b/deploy/kokoro.sh
@@ -8,10 +8,9 @@
 mkdir old-db
 gsutil -m cp -r gs://go-vulndb/* old-db
 
-go install golang.org/x/vulndb/cmd/gendb@latest
-go install golang.org/x/vulndb/cmd/dbdiff@latest
-
-export PATH=$PATH:$GOPATH/bin
-
-gendb -reports reports -out new-db
-dbdiff old-db new-db
+docker run --rm \
+  -v $PWD:/vulndb \
+  -w /vulndb \
+  golang:1.17.3 \
+  /bin/bash -c 'go run ./cmd/gendb -repo /vulndb -out new-db &&
+                go run ./cmd/dbdiff old-db new-db'
diff --git a/internal/database/generate.go b/internal/database/generate.go
index b4d0e6d..40a58a8 100644
--- a/internal/database/generate.go
+++ b/internal/database/generate.go
@@ -90,7 +90,7 @@
 		if err != nil {
 			return fmt.Errorf("failed to marshal json: %s", err)
 		}
-		if err := os.MkdirAll(filepath.Dir(outPath), 0700); err != nil {
+		if err := os.MkdirAll(filepath.Dir(outPath), 0755); err != nil {
 			return fmt.Errorf("failed to create directory %q: %s", filepath.Dir(outPath), err)
 		}
 		if err := ioutil.WriteFile(outPath+".json", content, 0644); err != nil {
@@ -113,7 +113,7 @@
 
 	// Write a directory containing entries by ID.
 	idDir := filepath.Join(jsonDir, idDirectory)
-	if err := os.MkdirAll(idDir, 0700); err != nil {
+	if err := os.MkdirAll(idDir, 0755); err != nil {
 		return fmt.Errorf("failed to create directory %q: %v", idDir, err)
 	}
 	var idIndex []string