Skip to content

Commit

Permalink
Upgraded docker-compose-*.yml files and added support for Docker Stac…
Browse files Browse the repository at this point in the history
…k/Swarm
  • Loading branch information
cer committed Jul 31, 2017
1 parent c78a868 commit b9fb017
Show file tree
Hide file tree
Showing 9 changed files with 374 additions and 176 deletions.
20 changes: 20 additions & 0 deletions README.md
Expand Up @@ -79,3 +79,23 @@ Finally, you can use the Swagger UI provided by the services to create customers
* `http://${DOCKER_HOST_IP?}:8082/swagger-ui.html` - View the customer and the order

(Hint: best to open these URLs in separate tabs)

## Deploying using Docker Stack/Swarm

You can also deploy the application using Docker Stack/Swarm mode.

Eventuate SaaS version:

```
./gradlew assemble
docker-compose build
docker stack deploy -c docker-stack.yml customers-and-orders
```

Eventuate Local version:

```
./gradlew assemble -P eventuateDriver=local
docker-compose -f docker-compose-eventuate-local.yml build
docker stack deploy -c docker-stack-eventuate-local.yml customers-and-orders
```
33 changes: 33 additions & 0 deletions build-and-test-docker-stacks.sh
@@ -0,0 +1,33 @@
#! /bin/bash -e

. ./set-env.sh

# Eventuate SaaS Version

./gradlew assemble

docker-compose build

docker stack deploy -c docker-stack.yml customers-and-orders

./wait-for-services.sh $DOCKER_HOST_IP 8081 8082 8083

./gradlew -a $BUILD_AND_TEST_ALL_EXTRA_GRADLE_ARGS $* :e2e-test:cleanTest :e2e-test:test -P ignoreE2EFailures=false

docker stack rm customers-and-orders


# Eventuate Local version


./gradlew assemble -P eventuateDriver=local

docker-compose -f docker-compose-eventuate-local.yml build

docker stack deploy -c docker-stack-eventuate-local.yml customers-and-orders

./wait-for-services.sh $DOCKER_HOST_IP 8081 8082 8083

./gradlew -a $BUILD_AND_TEST_ALL_EXTRA_GRADLE_ARGS $* :e2e-test:cleanTest :e2e-test:test -P ignoreE2EFailures=false

docker stack rm customers-and-orders
26 changes: 0 additions & 26 deletions docker-compose-common.yml

This file was deleted.

205 changes: 106 additions & 99 deletions docker-compose-eventuate-local.yml
@@ -1,108 +1,115 @@
zookeeper:
image: eventuateio/eventuateio-local-zookeeper:0.10.0
ports:
- 2181:2181
- 2888:2888
- 3888:3888
version: '3'
services:
zookeeper:
image: eventuateio/eventuateio-local-zookeeper:0.10.0
ports:
- 2181:2181
- 2888:2888
- 3888:3888


kafka:
image: eventuateio/eventuateio-local-kafka:0.10.0
ports:
- 9092:9092
links:
- zookeeper
environment:
- ADVERTISED_HOST_NAME=${DOCKER_HOST_IP}
- KAFKA_HEAP_OPTS=-Xmx320m -Xms320m
- ZOOKEEPER_SERVERS=zookeeper:2181
kafka:
image: eventuateio/eventuateio-local-kafka:0.10.0
ports:
- 9092:9092
links:
- zookeeper
environment:
- ADVERTISED_HOST_NAME=${DOCKER_HOST_IP}
- KAFKA_HEAP_OPTS=-Xmx320m -Xms320m
- ZOOKEEPER_SERVERS=zookeeper:2181

mysql:
image: eventuateio/eventuateio-local-mysql:0.10.0
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_USER=mysqluser
- MYSQL_PASSWORD=mysqlpw
mysql:
image: eventuateio/eventuateio-local-mysql:0.10.0
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_USER=mysqluser
- MYSQL_PASSWORD=mysqlpw


cdcservice:
image: eventuateio/eventuateio-local-cdc-service:0.10.0
ports:
- "8099:8080"
links:
- mysql
- kafka
- zookeeper
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
SPRING_DATASOURCE_USERNAME: mysqluser
SPRING_DATASOURCE_PASSWORD: mysqlpw
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
cdcservice:
image: eventuateio/eventuateio-local-cdc-service:0.10.0
ports:
- "8099:8080"
links:
- mysql
- kafka
- zookeeper
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
SPRING_DATASOURCE_USERNAME: mysqluser
SPRING_DATASOURCE_PASSWORD: mysqlpw
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword

mongodb:
extends:
file: docker-compose-common.yml
service: mongodb
mongodb:
image: mongo:3.0.4
hostname: mongodb
command: mongod --smallfiles
ports:
- "27017:27017"

customercommandside:
extends:
file: docker-compose-common.yml
service: customercommandside
links:
- mysql
- kafka
- zookeeper
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
SPRING_DATASOURCE_USERNAME: mysqluser
SPRING_DATASOURCE_PASSWORD: mysqlpw
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
customercommandside:
build: ./customers-service/
ports:
- "8081:8080"
links:
- mysql
- kafka
- zookeeper
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
SPRING_DATASOURCE_USERNAME: mysqluser
SPRING_DATASOURCE_PASSWORD: mysqlpw
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword

orderhistoryqueryside:
extends:
file: docker-compose-common.yml
service: orderhistoryqueryside
links:
- mongodb
- mysql
- kafka
- zookeeper
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
SPRING_DATASOURCE_USERNAME: mysqluser
SPRING_DATASOURCE_PASSWORD: mysqlpw
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
SPRING_DATA_MONGODB_URI: mongodb://mongodb/clients_and_orders
orderhistoryqueryside:
build: ./orders-history-view-service/
ports:
- "8082:8080"
links:
- mongodb
- mysql
- kafka
- zookeeper
environment:
SPRING_DATA_MONGODB_URI: mongodb://mongodb/clients_and_orders
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
SPRING_DATASOURCE_USERNAME: mysqluser
SPRING_DATASOURCE_PASSWORD: mysqlpw
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
SPRING_DATA_MONGODB_URI: mongodb://mongodb/clients_and_orders

ordercommandside:
extends:
file: docker-compose-common.yml
service: ordercommandside
links:
- mysql
- kafka
- zookeeper
- customercommandside
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
SPRING_DATASOURCE_USERNAME: mysqluser
SPRING_DATASOURCE_PASSWORD: mysqlpw
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
ordercommandside:
build: ./orders-service/
ports:
- "8083:8080"
links:
- mysql
- kafka
- zookeeper
- customercommandside
environment:
CUSTOMER_SERVICE_URL: http://customercommandside:8080/customers/{customerId}
ENDPOINTS_SENSITIVE: "false"
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
SPRING_DATASOURCE_USERNAME: mysqluser
SPRING_DATASOURCE_PASSWORD: mysqlpw
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
EVENTUATELOCAL_CDC_DB_USER_NAME: root
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
66 changes: 37 additions & 29 deletions docker-compose.yml
@@ -1,32 +1,40 @@
customercommandside:
extends:
file: docker-compose-common.yml
service: customercommandside
environment:
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
version: '3'

orderhistoryqueryside:
extends:
file: docker-compose-common.yml
service: orderhistoryqueryside
links:
- mongodb
environment:
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
services:
customercommandside:
build: ./customers-service/
ports:
- "8081:8080"
environment:
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}

ordercommandside:
extends:
file: docker-compose-common.yml
service: ordercommandside
links:
- customercommandside
environment:
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
orderhistoryqueryside:
build: ./orders-history-view-service/
ports:
- "8082:8080"
links:
- mongodb
environment:
SPRING_DATA_MONGODB_URI: mongodb://mongodb/clients_and_orders
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}

mongodb:
extends:
file: docker-compose-common.yml
service: mongodb
ordercommandside:
build: ./orders-service/
ports:
- "8083:8080"
links:
- customercommandside
environment:
CUSTOMER_SERVICE_URL: http://customercommandside:8080/customers/{customerId}
ENDPOINTS_SENSITIVE: "false"
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}

mongodb:
image: mongo:3.0.4
hostname: mongodb
command: mongod --smallfiles
ports:
- "27017:27017"

0 comments on commit b9fb017

Please sign in to comment.