User:JesterKing/InfraProject/PhabOnDocker
Main steps
- install docker and docker-compose
- note that folder sharing is required, since this docker image depends on the phabricator repository from developer.blender.org to be cloned into the right location (initialize.py should take care of that)
- on Linux ensure the user you run docker with is in in the docker group:
sudo usermod -aG docker $USER
. Don't forget to logout and back in - clone https://github.com/jesterKing/phabricator
- check out
blender_phabricator_docker
cp settings_config.py.template settings_config.py
- run the
initialize.py
script (python 3.5 minimum) - update /etc/hosts as suggested by
initialize.py
example:192.168.1.100 phab.test.int
- note that
initialize.py
suggests a number of steps to get config applied- change
PHABRICATOR_HOST=phab.test.int:62080
if you use a different domain name
- change
docker-compose up
or for running in backgrounddocker-compose up -d
- browse to http://phab.test.int:62080
- to use command-line access in your phabricator container
docker exec -it phab_container_id bash
- this gives you an interactive bash as root into the container
- use
su - git
to become the phabricator user on the container git
user has home at/srv/phabricator
Steps to set up policies and reconfigure
To get set up the policies properly you'll have to work around a bit of chicken and egg problem:
- Do all of the steps above
- Log into your phabricator instance
- Create the policies and note their PHIDs (it is useful to enable developer settings where such data is always easily accessible while using your phabricator in the browser)
- Set the PHIDs to the respective policy variables in settings_config.py
- In your docker instance bash shell ensure the settings are visible
- run the apply_config.py script again
Locations
ROOT will be your clone of the docker repository clone
Phabricator
The location of the phabricator clone is
ROOT/srv/docker/phabricator/phabricator
MySQL
The location of the MySQL database files is
ROOT/srv/docker/phabricator/mysql
Would Be Nice TODOs
- Use a Linux distribution that is more commonly used among Blender developers instead of OpenSuse
- Complete blender-conduit.py to pull a usable subset of data from developer.blender.org to seed the docker instance with
- Automate setting up of policies the when the database needs to be initialized (either very first run, or database location was cleared