commit | ee369ee3eb061483dd2a3d966c540d8268345b1c | [log] [tgz] |
---|---|---|
author | Ivan Pilat <ivanpi@google.com> | Tue Dec 02 14:47:21 2014 -0800 |
committer | Ivan Pilat <ivanpi@google.com> | Tue Dec 02 14:47:53 2014 -0800 |
tree | 615ba113e918ce44ca0037cc21a4243cfb09ad28 | |
parent | beca07f60155cd3fe13ae5d4b6878921266a62d6 [diff] |
veyron.io/playground: Fix deadlock on file run failure. If a playground file failed to be executed, the reporting mechanism in builder would deadlock and compilerd would timeout instead of an error being reported. Change-Id: I4b03b5663f628f1caf01852bcca174aa78c2ee1e
Install Docker:
On Goobuntu, we recommend overriding the default graph dir (/var/lib/docker
) to avoid filling up the root filesystem partition, which is quite small. To do so, add the following line to your /etc/default/docker
:
DOCKER_OPTS="${DOCKER_OPTS} -g /usr/local/google/docker"
Start (or restart) the Docker daemon:
$ sudo service docker restart
Build the playground Docker image (this will take a while...):
$ cp ~/.netrc $VEYRON_ROOT/veyron/go/src/veyron.io/playground/builder/netrc $ sudo docker build -t playground $VEYRON_ROOT/veyron/go/src/veyron.io/playground/builder/.
Note: If you want to ensure an up-to-date version of veyron is installed in the Docker image, run the above command with the “--no-cache” flag.
Test your image (without running compilerd):
$ sudo docker run -i playground < /usr/local/google/home/sadovsky/dev/veyron-www/content/playgrounds/code/fortune/ex0-go/bundle.json
Install the playground binaries:
$ veyron go install veyron.io/playground/...
Run the compiler binary as root:
$ sudo $VEYRON_ROOT/veyron/go/bin/compilerd --shutdown=false --address=localhost:8181
Or, run it without Docker (for faster iterations during development):
$ cd $(mktemp -d "/tmp/XXXXXXXX") $ PATH=$VEYRON_ROOT/veyron/go/bin:$PATH compilerd --shutdown=false --address=localhost:8181 --use-docker=false
The server should now be running at http://localhost:8181 and responding to compile requests at http://localhost:8181/compile.
Add ?pgaddr=//localhost:8181
to any veyron-www page to make its embedded playgrounds talk to your server. Add ?debug=1
to see debug info from the builder.