playground: parameterize GO_VERSION in Dockerfile

This will allow us to specify a GO_VERSION at build time.

Bumps GO_VERSION to go1.12.6.

Moves BUILD_DEPS install step before GO_VERSION which improves
intermediate step caching during development.

Verified locally with:
- docker build --build-arg GO_VERSION=go1.12.6 (and others)
- Ran fmt.Println(runtime.Version()) in the playground to verify the
version changed.

Updates golang/go#32606

Change-Id: Ic57f8a0a3465d7ea3438a31eab5ca90f85333af5
Reviewed-on: https://go-review.googlesource.com/c/playground/+/182180
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
1 file changed
tree: eaf21035799afffe72610555c1ade3d599822a89
  1. static/
  2. app.yaml
  3. AUTHORS
  4. cache.go
  5. client.go
  6. codereview.cfg
  7. CONTRIBUTING.md
  8. CONTRIBUTORS
  9. Dockerfile
  10. edit.go
  11. edit.html
  12. enable-fake-time.patch
  13. fake_fs.lst
  14. fmt.go
  15. fmt_test.go
  16. go.mod
  17. go.sum
  18. LICENSE
  19. logger.go
  20. main.go
  21. Makefile
  22. PATENTS
  23. play.go
  24. play_test.go
  25. README.md
  26. sandbox.go
  27. server.go
  28. server_test.go
  29. share.go
  30. store.go
  31. tests.go
  32. txtar.go
  33. txtar_test.go
  34. vet.go
README.md

playground

This subrepository holds the source for the Go playground: https://play.golang.org/

Building

# build the image
docker build -t playground .

Running

docker run --name=play --rm -d -p 8080:8080 playground
# run some Go code
cat /path/to/code.go | go run client.go | curl -s --upload-file - localhost:8080/compile

Deployment

Building the playground Docker container takes more than the default 10 minute time limit of cloud build, so increase its timeout first (note, app/cloud_build_timeout is a global configuration value):

gcloud config set app/cloud_build_timeout 1200  # 20 mins

Alternatively, to avoid Cloud Build and build locally:

make docker
docker tag playground:latest gcr.io/golang-org/playground:latest
docker push gcr.io/golang-org/playground:latest
gcloud --project=golang-org --account=you@google.com app deploy app.yaml --image-url=gcr.io/golang-org/playground:latest

Then:

gcloud --project=golang-org --account=you@google.com app deploy app.yaml

Contributing

To submit changes to this repository, see https://golang.org/doc/contribute.html.