documentation updates for docker-compose usage

Change-Id: I261a5865a1e8a9a834d9261acd513b85a6836605
Reviewed-on: https://gerrit.instructure.com/51245
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Zach Wily <zach@instructure.com>
QA-Review: Zach Wily <zach@instructure.com>
Tested-by: Zach Wily <zach@instructure.com>
This commit is contained in:
Zach Wily 2015-03-30 15:20:40 -06:00 committed by Zach Wily
parent 40524e549c
commit 2335fbf70e
1 changed files with 33 additions and 2 deletions

View File

@ -3,12 +3,20 @@
You can use Docker in your development environment for a more seamless
way to get started developing Canvas.
## Getting Started
### Dependencies
On OS X, make sure you have the following installed:
#### VMWare Fusion
Preferred over VirtualBox for performance reasons.
#### Vagrant (with VMWare Fusion plugin)
Required for Dinghy to work with VMWare Fusion.
#### Dinghy
```
@ -19,12 +27,15 @@ $ dinghy up --memory=4096 --cpus=4 --provider=vmware_fusion --proxy
Type `docker ps` in your terminal to make sure your Docker environment
is happy.
Dinghy currently requires OS X Yosemite.
#### Docker-Compose
```
$ brew install docker-compose --without-boot2docker
```
### Bootstrapping
With those dependencies installed, go to your Canvas directory and run
the following:
@ -54,6 +65,24 @@ $ docker-compose up
Now you can open Canvas at http://canvas.docker/
## Normal Usage
Normally you can just start everything with `docker-compose up`, and
access Canvas at http://canvas.docker/.
After pulling new code, you'll probably want to run migrations and
update assets:
```
$ docker-compose run --rm web bundle exec rake db:migrate
$ docker-compose run --rm web bundle exec rake canvas:compile_assets
```
Changes you're making are not showing up? See the Caveats section below.
Ctrl-C your `docker-compose up` window and restart.
## Running tests
```
@ -70,11 +99,13 @@ $ open vnc://secret:secret@$(docker-compose ps | grep canvaslms_selenium_ | awk
```
Caveats:
## Caveats
Filesystem notification events don't get propagated to your docker
images, so spring doesn't know to reload classes and guard doesn't work
well. (It tries to poll, but there are so many files to poll for
changes, it can take awhile). Until we can figure out how to remedy,
you'll be stopping/starting for awhile to restart services.
See https://github.com/codekitchen/dinghy/issues/9 to track progress on
getting inotify events into the docker containers with Dinghy.