monkey
monkey copied to clipboard
Setting `MONKEY_MONGO_URL` env variable to non-default value results in island exiting with error
Describe the bug
The mongo URL is configurable via the MONKEY_MONGO_URL environment variable. However, Flask-Security also has a connection to mongodb, and it uses hard-coded values instead of the connection details from MONKEY_MONGO_URL. Thus, if MONKEY_MONGO_URL differs from the defaults, the server will error out because one of the connections to mongo will fail.
Introduced in 564c15dc1cc2395151a545ea89f1d9ff9260becc #2157
To Reproduce
Steps to reproduce the behavior:
- Setup and run mongodb on a different port (e.g.
27019) - Set MONKEY_MONGO_URL environment variable with the port (e.g.
mongodb://localhost:27019/monkey_island) - Run the island
- Observe that the island exits because it failed to connect to mongodb
Expected behavior
I expect both connections to mongodb to use the same connection details.
Machine version (please complete the following information):
- OS: Windows or Linux
I'm also trying to run it using docker compose but facing the same problem. Here's my workaround:
- copy file /monkey/monkey_island/cc/mongo_consts.py from inside the container to your docker-host (using docker cp)
- edit the file on your docker-host and replace HOST,PORT with your valid values. ( i only changed DEFAULT_MONGO_DB_HOST from "localhost" to "db" which is the service name of the mongodb container in my compose)
- mount the file into your container e.g.
volumes:
- ${DOCKER_DIR}mongo_consts.py:/monkey/monkey_island/cc/mongo_consts.py