Merge pull request #3 from bfirsh/compose-file-2

Convert app to use Compose file 2
This commit is contained in:
Ben Firshman 2016-02-04 19:57:27 +00:00
commit 6aa86f6a12
19 changed files with 63 additions and 33 deletions

View File

@ -1,7 +1,7 @@
Example Voting App Example Voting App
================== ==================
This is an example Docker app with multiple services. It is run with Docker Compose and uses Docker Networking to connect containers together. This is an example Docker app with multiple services. It is run with Docker Compose and uses Docker Networking to connect containers together. You will need Docker Compose 1.6 or later.
More info at https://blog.docker.com/2015/11/docker-toolbox-compose/ More info at https://blog.docker.com/2015/11/docker-toolbox-compose/
@ -17,10 +17,9 @@ Architecture
Running Running
------- -------
Since this app makes use of Compose's experimental networking support, it must be started with: Run in this directory:
$ cd vote-apps/ $ docker-compose up -d
$ docker-compose --x-networking up -d
The app will be running on port 5000 on your Docker host, and the results will be on port 5001. The app will be running on port 5000 on your Docker host, and the results will be on port 5001.

56
docker-compose.yml Normal file
View File

@ -0,0 +1,56 @@
version: "2"
services:
voting-app:
build: ./voting-app/.
volumes:
- ./voting-app:/app
ports:
- "5000:80"
links:
- redis
networks:
- front-tier
- back-tier
result-app:
build: ./result-app/.
volumes:
- ./result-app:/app
ports:
- "5001:80"
links:
- db
networks:
- front-tier
- back-tier
worker:
build: ./worker
links:
- db
- redis
networks:
- back-tier
redis:
image: redis
ports: ["6379"]
networks:
- back-tier
db:
image: postgres:9.4
volumes:
- "db-data:/var/lib/postgresql/data"
networks:
- back-tier
volumes:
db-data:
networks:
front-tier:
back-tier:

View File

@ -24,7 +24,7 @@ io.sockets.on('connection', function (socket) {
async.retry( async.retry(
{times: 1000, interval: 1000}, {times: 1000, interval: 1000},
function(callback) { function(callback) {
pg.connect('postgres://postgres@voteapps_db_1/postgres', function(err, client, done) { pg.connect('postgres://postgres@db/postgres', function(err, client, done) {
if (err) { if (err) {
console.error("Failed to connect to db"); console.error("Failed to connect to db");
} }

View File

@ -1,25 +0,0 @@
voting-app:
build: ./voting-app/.
volumes:
- ./voting-app:/app
ports:
- "5000:80"
redis:
image: redis
ports: ["6379"]
worker:
build: ./worker
db:
image: postgres:9.4
volumes:
- "myvolume:/var/lib/postgresql/data"
result-app:
build: ./result-app/.
volumes:
- ./result-app:/app
ports:
- "5001:80"

View File

@ -12,7 +12,7 @@ option_a = os.getenv('OPTION_A', "Cats")
option_b = os.getenv('OPTION_B', "Dogs") option_b = os.getenv('OPTION_B', "Dogs")
hostname = socket.gethostname() hostname = socket.gethostname()
redis = connect_to_redis("voteapps_redis_1") redis = connect_to_redis("redis")
app = Flask(__name__) app = Flask(__name__)

View File

@ -8,8 +8,8 @@ import org.json.JSONObject;
class Worker { class Worker {
public static void main(String[] args) { public static void main(String[] args) {
try { try {
Jedis redis = connectToRedis("voteapps_redis_1"); Jedis redis = connectToRedis("redis");
Connection dbConn = connectToDB("voteapps_db_1"); Connection dbConn = connectToDB("db");
System.err.println("Watching vote queue"); System.err.println("Watching vote queue");