How can I use Great Expectations in a read-only environment?

To write absolutely nothing to the local file system, you can create a Data Context programmatically. How to instantiate a Data Context without a yml file — great_expectations documentation

As of March 18, 2021, this documentation only has a V2 API description. For corresponding snippets in V3 API consult the Databricks guide: How to instantiate a Data Context on Databricks Spark cluster — great_expectations documentation

Then look up in the “Configuring metadata stores” section of the how-to guide find the instructions for storing Expectations and Validation Results in a cloud storage service or a database: Configuring metadata stores — great_expectations documentation.