mirror of
https://github.com/golang/go
synced 2024-11-05 11:36:10 -07:00
1f2a8f46bd
Deploys no longer depend on Docker. With only Make and gcloud installed, the following should deploy a new version: $ git clone https://go.googlesource.com/tools $ cd tools $ cd cmd/godoc $ make cloud-build deploy Updates golang/go#27205. Change-Id: I5cc1142e02dc288450d55dbd4da4b30c0a080bd5 Reviewed-on: https://go-review.googlesource.com/c/139240 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
95 lines
2.0 KiB
Plaintext
95 lines
2.0 KiB
Plaintext
godoc on Google App Engine
|
|
==========================
|
|
|
|
Prerequisites
|
|
-------------
|
|
|
|
* Google Cloud SDK
|
|
https://cloud.google.com/sdk/
|
|
|
|
* Redis
|
|
|
|
* Go sources under $GOROOT
|
|
|
|
* Godoc sources inside $GOPATH
|
|
(go get -d golang.org/x/tools/cmd/godoc)
|
|
|
|
|
|
Running locally, in production mode
|
|
-----------------------------------
|
|
|
|
Build the app:
|
|
|
|
go build -tags golangorg
|
|
|
|
Run the app:
|
|
|
|
./godoc
|
|
|
|
godoc should come up at http://localhost:8080
|
|
|
|
Use the PORT environment variable to change the port:
|
|
|
|
PORT=8081 ./godoc
|
|
|
|
Running locally, in production mode, using Docker
|
|
-------------------------------------------------
|
|
|
|
Build the app's Docker container:
|
|
|
|
make docker-build
|
|
|
|
Make sure redis is running on port 6379:
|
|
|
|
$ echo PING | nc localhost 6379
|
|
+PONG
|
|
^C
|
|
|
|
Run the datastore emulator:
|
|
|
|
gcloud beta emulators datastore start --project golang-org
|
|
|
|
In another terminal window, run the container:
|
|
|
|
$(gcloud beta emulators datastore env-init)
|
|
|
|
docker run --rm \
|
|
--net host \
|
|
--env GODOC_REDIS_ADDR=localhost:6379 \
|
|
--env DATASTORE_EMULATOR_HOST=$DATASTORE_EMULATOR_HOST \
|
|
--env DATASTORE_PROJECT_ID=$DATASTORE_PROJECT_ID \
|
|
gcr.io/golang-org/godoc
|
|
|
|
godoc should come up at http://localhost:8080
|
|
|
|
|
|
Deploying to golang.org
|
|
-----------------------
|
|
|
|
Make sure you're signed in to gcloud:
|
|
|
|
gcloud auth login
|
|
|
|
Build the image, push it to gcr.io, and deploy to Flex:
|
|
|
|
make cloud-build deploy
|
|
|
|
Point the load balancer to the newly deployed version:
|
|
(This also runs regression tests)
|
|
|
|
make publish
|
|
|
|
Stop and/or delete down any very old versions. (Stopped versions can be re-started.)
|
|
Keep at least one older verson to roll back to, just in case.
|
|
You can also migrate traffic to the new version via this UI.
|
|
|
|
https://console.cloud.google.com/appengine/versions?project=golang-org&serviceId=default&versionssize=50
|
|
|
|
|
|
Troubleshooting
|
|
---------------
|
|
|
|
Ensure the Cloud SDK is on your PATH and you have the app-engine-go component
|
|
installed (gcloud components install app-engine-go) and your components are
|
|
up-to-date (gcloud components update)
|