The only way to pass configuration into a container, is through environment variables. According to Phabricators documentation the only places it reads configuration from is from the database and config files.
./bin directory is in the
PATH so you can open up another terminal and run something like:
docker-compose exec phabricator config set <key> <value>
docker-compose exec phabricator storage upgrade
to update the database, etc.
If you really want to pass in environment variables into phabricator, you could so with a dynamic configuration file. Something like this maybe:
'mysql.host' => $_SERVER['MYSQL_HOST'],
'mysql.user' => $_SERVER['MYSQL_USER'],
'mysql.pass' => $_SERVER['MYSQL_PASSWORD'],
but you will also need to configure Apache to pass the system enivornment variables down to the script
I thought about making something like this dynamic, but Phabricator has a TON of configuration, most of which does not fit neatly into environment variables. At the end of the day, I don’t see a huge advantage in doing all of this versus mounting a volume to store the configuration in
json files (which is what Phabricator does by default). I would recommend using the CLI as they recommend.