Docker-compose errors with rasa-x

Hi all!

I am working with the default docker-compose.ce.yml, and am running into some errors which are preventing me from training any models within the rasa-x ui. I have tried to define the RASA_X_USERNAME differently in both the docker-compose.yml and the .env file as recommended in the tutorial here: Docker Compose Installation

I am using:

  • RASA_X_VERSION=0.35.0
  • RASA_VERSION=2.2.5
  • RASA_X_DEMO_VERSION=0.35.0

This has been stumping me for days, and I am wondering where to go from here since this error effectively prevents me from working with my bot project in rasa-x. Any help at all would be deeply appreciated!

Thanks in advance for your help!

The traceback from the rasa-x container:

        Traceback (most recent call last):
          File "/usr/local/lib/python3.8/dist-packages/apscheduler/executors/base.py", line 125, in run_job
            retval = job.func(*job.args, **job.kwargs)
          File "/usr/local/lib/python3.8/dist-packages/rasax/community/services/integrated_version_control/git_service.py", line 131, in run_background_synchronization
            loop.run_until_complete(git_service.synchronize_project(force_data_injection))
          File "uvloop/loop.pyx", line 1456, in uvloop.loop.Loop.run_until_complete
          File "/usr/local/lib/python3.8/dist-packages/rasax/community/services/integrated_version_control/git_service.py", line 1114, in synchronize_project
            return await self._force_inject_latest_remote_changes()
          File "/usr/local/lib/python3.8/dist-packages/rasax/community/services/integrated_version_control/git_service.py", line 1174, in _force_inject_latest_remote_changes
            await self._inject_data()
          File "/usr/local/lib/python3.8/dist-packages/rasax/community/services/integrated_version_control/git_service.py", line 1146, in _inject_data
            await rasax.community.initialise.inject_files_from_disk(
          File "/usr/local/lib/python3.8/dist-packages/rasax/community/initialise.py", line 350, in inject_files_from_disk
            inject_domain(
          File "/usr/local/lib/python3.8/dist-packages/rasax/community/initialise.py", line 185, in inject_domain
            if not rasa.shared.core.domain.Domain.is_domain_file(
          File "/usr/local/lib/python3.8/dist-packages/rasa/shared/core/domain.py", line 1582, in is_domain_file
            content = rasa.shared.utils.io.read_yaml_file(filename)
          File "/usr/local/lib/python3.8/dist-packages/rasa/shared/utils/io.py", line 368, in read_yaml_file
            return read_yaml(read_file(filename, DEFAULT_ENCODING))
          File "/usr/local/lib/python3.8/dist-packages/rasa/shared/utils/io.py", line 349, in read_yaml
            return yaml_parser.load(content) or {}
          File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line 343, in load
            return constructor.get_single_data()
          File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 113, in get_single_data
            return self.construct_document(node)
          File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 123, in construct_document
            for _dummy in generator:
          File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 723, in construct_yaml_map
            value = self.construct_mapping(node)
          File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 440, in construct_mapping
            return BaseConstructor.construct_mapping(self, node, deep=deep)
          File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 255, in construct_mapping
            value = self.construct_object(value_node, deep=deep)
          File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 146, in construct_object
            data = self.construct_non_recursive_object(node)
          File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 181, in construct_non_recursive_object
            data = constructor(self, node)
          File "/usr/local/lib/python3.8/dist-packages/rasa/shared/utils/io.py", line 311, in env_var_constructor
            raise ValueError(
        ValueError: Error when trying to expand the environment variables in '${RASA_X_USERNAME:-admin}'. Please make sure to also set these environment variables: '['${RASA_X_USERNAME:-admin}']'.```

@karmakat thanks for your question and welcome to Rasa forum!

Looking at the traceback you wrote down, it seems like Rasa X is trying to detect domain files and tries to load docker-compose.ce.yml and fails because of a missing env var (and it’s not a domain file!). Could you try specifying a path to your domain file instead on relying on this mechanism?

(I’ll also open an issue internally to tackle the error handling issue)

Thank you very much for the welcome and the feedback. You were right that the way I had combined my rasa-x repo with my docker-compose and my bot repo was causing the issue. Once I separated the 2, this issue went away! Still, it is odd behavior… so makes sense to open a report I think!

Cheers!