Skip to content

Commit

Permalink
Divide docker-compose files
Browse files Browse the repository at this point in the history
Signed-off-by: Arthur Temporim <[email protected]>
  • Loading branch information
arthurTemporim committed Aug 26, 2023
1 parent 6ebbc9e commit 3eaf6e2
Show file tree
Hide file tree
Showing 7 changed files with 194 additions and 87 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ bot/results*
bot/train_test_split/
.tensorboard*
.rasa/
*.log

### Rasa X ###
events.db
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ down:
init:
make build
make train
make shell
make webchat

logs:
docker compose logs \
Expand Down
6 changes: 5 additions & 1 deletion bot/endpoints.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,8 @@ tracker_store:
db: "bot"
username: ${MONGO_USERNAME}
password: ${MONGO_PASSWORD}
auth_source: "bot"
auth_source: "bot"

event_broker:
type: "file"
path: "rasa_events.log"
2 changes: 1 addition & 1 deletion bot/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
rasa==3.6.5
rasa==3.6.6
112 changes: 112 additions & 0 deletions docker-compose-rocket.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
version: "3.9"

services:
# ================================= Bot =====================================
# Generic Rasa bot, used to run console for example.
bot:
build:
context: .
dockerfile: ./docker/bot.Dockerfile
container_name: bot
env_file:
- ./env/bot.env
volumes:
- ./bot/:/bot/
ports:
- 5005:5005
depends_on:
- actions
- mongo
networks:
- bot
# ============================ Tracker Store=================================
# A mongodb container as rasa tracker store.
mongo:
container_name: mongo
image: mongo:6.0
restart: unless-stopped
env_file:
- env/bot.env
ports:
- 27017:27017
networks:
- bot
volumes:
- ./data/db:/data/db

# ================================= Actions =================================
# Rasa middleware used to connect with external APIs.
actions:
build:
context: .
dockerfile: ./docker/actions.Dockerfile
container_name: actions
env_file:
- ./env/bot.env
ports:
- 5055:5055
volumes:
- ./bot:/bot
command: sh -c "python -m rasa_sdk --actions actions"
networks:
- bot

# =============================== Rocket.Chat =================================
# Rocket.Chat instance.
rocketchat:
image: registry.rocket.chat/rocketchat/rocket.chat:latest
command: >
bash -c
"for i in `seq 1 30`; do
node main.js &&
s=$$? && break || s=$$?;
echo \"Tried $$i times. Waiting 5 secs...\";
sleep 5;
done; (exit $$s)"
restart: unless-stopped
volumes:
- ./uploads:/app/uploads
environment:
- PORT=3000
- ROOT_URL=http://localhost:3000
- MONGO_URL=mongodb://mongo-rocket:27017/rocketchat
- MONGO_OPLOG_URL=mongodb://mongo-rocket:27017/local
#- REG_TOKEN=${REG_TOKEN}
depends_on:
- mongo-rocket
ports:
- 3000:3000
# =============================== Mongo =================================
# Mongo database and replica set.
mongo-rocket:
image: mongo:4.0
restart: unless-stopped
volumes:
- ./data/db:/data/db
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1

# this container's job is just run the command to initialize the replica set.
# it will run the command and remove himself (it will not stay running)
mongo-init-replica:
image: mongo:4.0
command: >
bash -c
"for i in `seq 1 30`; do
mongo mongo/rocketchat --eval \"
rs.initiate({
_id: 'rs0',
members: [ { _id: 0, host: 'localhost:27017' } ]})\" &&
s=$$? && break || s=$$?;
echo \"Tried $$i times. Waiting 5 secs...\";
sleep 5;
done; (exit $$s)"
depends_on:
- mongo-rocket

volumes:
mongo_data:
rocket_uploads:

networks:
bot:
driver: bridge
74 changes: 74 additions & 0 deletions docker-compose-telegram.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
version: "3.9"

services:
# ================================= Bot =====================================
# Generic Rasa bot, used to run console for example.
bot:
build:
context: .
dockerfile: ./docker/bot.Dockerfile
container_name: bot
env_file:
- ./env/bot.env
volumes:
- ./bot/:/bot/
ports:
- 5005:5005
depends_on:
- actions
- mongo
networks:
- bot
# ============================ Tracker Store=================================
# A mongodb container as rasa tracker store.
mongo:
container_name: mongo
image: mongo:6.0
restart: unless-stopped
env_file:
- env/bot.env
ports:
- 27017:27017
networks:
- bot
volumes:
- ./data/db:/data/db

# ================================= Actions =================================
# Rasa middleware used to connect with external APIs.
actions:
build:
context: .
dockerfile: ./docker/actions.Dockerfile
container_name: actions
env_file:
- ./env/bot.env
ports:
- 5055:5055
volumes:
- ./bot:/bot
command: sh -c "python -m rasa_sdk --actions actions"
networks:
- bot

# ============================ Telegram Bot =================================
# Specific Rasa bot integrated with Telegram.
bot-telegram:
build:
context: .
dockerfile: ./docker/bot.Dockerfile
volumes:
- ./bot/:/bot/
env_file:
- ./env/bot-telegram.env
- ./env/bot.env
ports:
- 5005:5005
command: sh -c "make telegram"

volumes:
mongo_data:

networks:
bot:
driver: bridge
84 changes: 0 additions & 84 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,90 +62,6 @@ services:
networks:
- bot

# ============================ Telegram Bot =================================
# Specific Rasa bot integrated with Telegram.
bot-telegram:
build:
context: .
dockerfile: ./docker/bot.Dockerfile
volumes:
- ./bot/:/bot/
env_file:
- ./env/bot-telegram.env
- ./env/bot.env
ports:
- 5005:5005
command: sh -c "make telegram"

# ============================ Grafana =======================================
# Analytics
grafana:
image: grafana/grafana-enterprise
container_name: grafana
restart: unless-stopped
# if you are running as root then set it to 0
# else find the right id with the id -u command
user: '1000'
ports:
- '3000:3000'
# adding the mount volume point which we create earlier
volumes:
- '$PWD/data:/var/lib/grafana'



# =============================== Rocket.Chat =================================
# Rocket.Chat instance.
rocketchat:
image: registry.rocket.chat/rocketchat/rocket.chat:latest
command: >
bash -c
"for i in `seq 1 30`; do
node main.js &&
s=$$? && break || s=$$?;
echo \"Tried $$i times. Waiting 5 secs...\";
sleep 5;
done; (exit $$s)"
restart: unless-stopped
volumes:
- ./uploads:/app/uploads
environment:
- PORT=3000
- ROOT_URL=http://localhost:3000
- MONGO_URL=mongodb://mongo-rocket:27017/rocketchat
- MONGO_OPLOG_URL=mongodb://mongo-rocket:27017/local
#- REG_TOKEN=${REG_TOKEN}
depends_on:
- mongo-rocket
ports:
- 3000:3000
# =============================== Mongo =================================
# Mongo database and replica set.
mongo-rocket:
image: mongo:4.0
restart: unless-stopped
volumes:
- ./data/db:/data/db
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1

# this container's job is just run the command to initialize the replica set.
# it will run the command and remove himself (it will not stay running)
mongo-init-replica:
image: mongo:4.0
command: >
bash -c
"for i in `seq 1 30`; do
mongo mongo/rocketchat --eval \"
rs.initiate({
_id: 'rs0',
members: [ { _id: 0, host: 'localhost:27017' } ]})\" &&
s=$$? && break || s=$$?;
echo \"Tried $$i times. Waiting 5 secs...\";
sleep 5;
done; (exit $$s)"
depends_on:
- mongo-rocket

volumes:
mongo_data:
rocket_uploads:
Expand Down

0 comments on commit 3eaf6e2

Please sign in to comment.