Fundraising tech/CiviProxy Docker

Overview
As part of the email preferences work relating to this ticket, we added Civiproxy to the fundraising tech docker stack. We haven't managed to script up all the steps needed to make CiviProxy run as of writing. Currently there are two fairly straightforward manual setup steps required to get CiviProxy working with CiviCRM on the docker stack.

Get/Set CIVICRM_SITE_KEY in docker-compose.yml
From the fundraising_dev project root open up ''src/civi-sites/wmff.sh and find the value of CIVI_SITE_KEY e.g. 'sG17RSjGxjgFVzgy'. Use this value to set the CiviProxy environment variable below:''

civiproxy: environment: - CIVICRM_SITE_KEY=SET_VALUE_HERE

Update `civicrm`.`contact` api_key field for admin user to 'docker-api-key'
Before running the SQL query below. You need to have logged into Drupal as the admin user so that CiviCRM creates the associated civicrm contact for admin otherwise it won't work. See screengrab of why is this necessary here.

UPDATE civicrm.civicrm_contact INNER JOIN civicrm.civicrm_uf_match drupal_user_field ON (drupal_user_field.contact_id = civicrm_contact.id) SET civicrm_contact.api_key = 'docker-api-key' WHERE drupal_user_field.uf_name = 'admin@example.com'

Docker stack CiviProxy Test URL
https://localhost:9005/rest.php?entity=civiproxy&action=getpreferences&key=SITE_KEY&version=3&json=1&api_key=API_KEY&hash=256fa6f5a00bce4598bc9144f203132f&contact_id=204

Gerrit patches

 * dev-images: (only needed if building locally): https://gerrit.wikimedia.org/r/c/releng/dev-images/+/664919


 * Fundraising-dev: https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/dev/+/673094


 * CiviCRM: https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/649729