Runs Phabricator and all associated daemons in one image (this image does not contain a database). This image currently auto-updates Phabricator once a week and restarts all processes.
This image can be pulled by running
docker pull offbyone/phabricator
This image was put together based off of the previous work done by https://github.com/hach-que-docker/phabricator and with insight from the previous work done by people at the following locations
To configure this image, create a
config directory, with a
script.pre file inside it. This
file should be marked as executable. Place the following content in that file:
#!/bin/bash # Set the name of the host running MySQL: ./bin/config set mysql.host "example.com" # If MySQL is running on a non-standard port: #./bin/config set mysql.port 3306 # Set the username for connecting to MySQL: ./bin/config set mysql.user "root" # Set the password for connecting to MySQL: ./bin/config set mysql.pass "password" # Set the base URI that will be used to access Phabricator: ./bin/config set phabricator.base-uri "http://myphabricator.com/"
To run this image:
/usr/bin/docker run -p 22:22 -p 24 -p 80:80 -p 443:443 -p 22280:22280 -v /path/to/config:/config -v /path/to/repo/storage:/var/repo --name=phabricator --link mariadb:linked_mariadb offbyone/phabricator
What do these parameters do?
-p 22:22 = forward the host's SSH port to Phabricator for repository access -p 24 = publishes port 24 from your Phabricator's instance to the host running docker (can be retrieved to SSH in) -p 80:80 = forward the host's HTTP port to Phabricator for web access -p 443:443 = forward the host's HTTPS port to Phabricator for secure web access -p 22280:22280 = forward the host's 22280 port for the notification server -v path/to/config:/config = map the configuration from the host to the container -v path/to/repo/storage:/var/repo = map the repository storage from the host to the container --name phabricator = the name of the container --link mariadb:linked_mariadb = (optional) if you are running MariaDB in a Docker container offbyone/phabricator = the name of the image
To enable SSL, place
cert.key files alongside
script.pre. The Docker
container will automatically detect the presence of the certificates and configure
Nginx to run with SSL enabled.
Linking to a DB container
If you are running MariaDB in a Docker container (e.g. using the
hachque/mariadb container), you can configure the
script.pre file like so to use the linked MariaDB container:
./bin/config set mysql.host "$LINKED_MARIADB_PORT_3306_TCP_ADDR" ./bin/config set mysql.port "$LINKED_MARIADB_PORT_3306_TCP_PORT"
--link option as shown above to link the Phabricator container to the MariaDB container.
To enable SSH, place an authorized_keys file next to
script.pre (in the
config directory). You will be able to log in
using key authentication.
(Note that repository hosting for Phabricator is served on port 22)
To retrieve the port that SSH is running on your server type
docker port phabricator 24
Then log in using
ssh -p PORT_NUM email@example.com where PORT_NUM is the output port from the docker port command
NOTE: This image assumes you are either storing your files using MySQL or using S3, there is no guarantee that your files will stick around if you use either other method. If you'd like to store files on the filesystem, you'll want to add an additional volume.