Skip to content

Commit

Permalink
Add docker-compose for easier provisioning;
Browse files Browse the repository at this point in the history
Add esdata dir to gitignore; edit README
  • Loading branch information
robbyoconnor committed Feb 28, 2016
1 parent 4ca141e commit 0f07ff6
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 13 deletions.
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
irc:channel=#openmrstest
elasticsearch:host=http://elasticsearch:9200
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
config.json
node_modules
logs
npm-debug.log
npm-debug.log
esdata
35 changes: 23 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
# Record Scrum notes from the #openmrs IRC channel

You may set settings such as the channel and the elasticsearch host [.env](.env) in this working directory, or optionally in `config.json`. A sample `.env` file is provided.
## Before building

npm install -g mocha

## Development

### ES (for a dev environment on OSX)
This requires [docker-compose][] for provisioning. For development, simply do:

$ docker run --name es -d -p 9200:9200 -p 9300:9300 elasticsearch -Des.network.bindHost=0.0.0.0
## Run just the listener (without the webapp)

$ node index --elasticsearch.host http://192.168.99.100:9200
Expand All @@ -30,28 +28,41 @@ If you do not have elasticsearch running on localhost:9200, then create a "confi
Then

$ npm start

And see the webapp running on http://localhost:3000

### Testing the docker build locally

$ docker run --name web -d -p 3000:3000 --link es:es -e "elasticsearch:host=http://es:9200" -e "irc:channel=#openmrstest" djazayeri/openmrs-scrumbot:1.0
``` shell
$ docker-compose run elasticsearch web
```

## Prod
## Production

Note: this approach uses LINK networking, which will eventually be deprecated in Docker.

### ES for prod on a Digital Ocean one-click app Docker box (don't expose ElasticSearch to the outside world, since it isn't secured)
### ES for production on a Digital Ocean one-click app Docker box (don't expose ElasticSearch to the outside world, since it isn't secured)

``` shell
$ docker-compose -f docker-compose.yml -f docker-compose-prod.yml up -d elasticsearch web
```

$ docker run -d --restart="unless-stopped" --name es -v "$PWD/esdata":/usr/share/elasticsearch/data -p 127.0.0.1:9200:9200 elasticsearch

### dockerhub does builds automatically

Whenever you commit code to this repository it is automatically built as djazayeri/openmrs-contrib-scrumbot:latest
Whenever you commit code to this repository it is automatically built as djazayeri/openmrs-contrib-scrumbot:latest

### run webapp+bot on docker on Digital Ocean

// this is automated as ./update-web
``` shell
$ docker pull djazayeri/openmrs-contrib-scrumbot:latest
$ docker rm web
$ docker run -d -p 80:3000 --name web --link es:es -e "elasticsearch:host=http://es:9200" djazayeri/openmrs-contrib-scrumbot:latest
```

You may also use [docker-compose][] to handle this:

``` shell
$ docker-compose -f docker-compose.yml -f docker-compose-prod.yml up -d elasticsearch web
```

[docker-compose]: https://docs.docker.com/compose/
4 changes: 4 additions & 0 deletions docker-compose-overrides.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
elasticsearch:
ports:
– "9200:9200"
- "9300:9300"
9 changes: 9 additions & 0 deletions docker-compose-prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
elasticsearch:
ports:
- "127.0.0.1:9200:9200"
- "127.0.0.1:9300:9300"
web:
ports:
- "80:3000"
environment:
- NODE_ENV=production
14 changes: 14 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
web:
build: .
links:
- elasticsearch
env_file: ./.env
restart: unless-stopped

elasticsearch:
image: elasticsearch:latest
command: elasticsearch -Des.network.bindHost=0.0.0.0
restart: unless-stopped
volumes:
- "./esdata:/usr/share/elasticsearch/data"

0 comments on commit 0f07ff6

Please sign in to comment.