internal/config: add BinaryDir

Make the directory in which we keep binaries a configuration parameter.

We decided to do this because it was hard to come up with a directory
for binaries that would work on both Cloud Run and locally.

Using /tmp is fine locally, but Cloud Run mounts something on /tmp,
so a docker image that writes files to /tmp will see those files
when executed directly with `docker run`, but not on Cloud Run.

In the Dockerfile, we use /app/binaries, and the sandbox bind-mounts
that to the same path. But that won't work locally because normal
users can't create top-level directories. Locally, a user can set
GO_ECOSYSTEM_BINARY_DIR, or let the binary directory default to

Change-Id: I128c5cece34ee0b4612dd879bd103d57e68d5484
TryBot-Result: Gopher Robot <>
Reviewed-by: Zvonimir Pavlinovic <>
Run-TryBot: Jonathan Amsterdam <>
7 files changed
tree: 00f92aa3eabdb42e085047600c125195511adde5
  1. cmd/
  2. deploy/
  3. devtools/
  4. internal/
  5. terraform/
  6. .dockerignore
  7. .gitignore
  8. all_test.go
  9. checks.bash
  10. config.json.commented
  12. go.mod
  13. go.sum
  15. Makefile
  18. tools.go


This repository contains code that serves

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see

The main issue tracker for the time repository is located at Prefix your issue with “x/pkgsite-metrics:” in the subject line, so it is easy to find.