- A running postgresql database and the ability to connect to it (see POSTGRESQL.md).
- If on Mac, you will need the
gtimeoutfunction. You can install
brew install coreutils.
- Install Docker
- Prepare your environment if you are not running postgresql in a docker container. Setup the pact broker connection to the database through the use of the following environment variables. If you want to use a disposable postgres docker container just do
export DISPOSABLE_PSQL=truebefore running the script/test.sh.
For a postgres or mysql database:
* PACT_BROKER_DATABASE_ADAPTER (optional, defaults to 'postgres', see note below.) * PACT_BROKER_DATABASE_USERNAME * PACT_BROKER_DATABASE_PASSWORD * PACT_BROKER_DATABASE_HOST * PACT_BROKER_DATABASE_NAME
Adapter can be 'postgres' (recommended) or 'mysql2' (please note that future JSON search features may not be supported on mysql).
For an sqlite database (only recommended for investigation/spikes, as it will be disposed of with the container unless you mount it from an external file system):
- PACT_BROKER_DATABASE_ADAPTER (set to 'sqlite')
- PACT_BROKER_DATABASE_NAME (arbitrary name eg. pact_broker.sqlite)
- Test the pact broker environment by executing script/test.sh
-p 80:80to start the docker image, as some of the Rack middleware gets confused by receiving requests for other ports and will return a 404 otherwise (port forwarding does not rewrite headers).
- On OSX, if you are not using Docker native, use
docker-machine ip $(docker-machine active)to get the IP of the VirtualBox, and connect on port 80.
- The application makes use of the phusion passenger application server.
- Apart from creating a database no further preparation is required.
Using basic auth
Run your container with
PACT_BROKER_BASIC_AUTH_PASSWORD set to enable basic auth for the pact broker application. Note that the verification status badges are not protected by basic auth, so that you may embed them in README markdown.
Setting the log level
Set the environment variable
PACT_BROKER_LOG_LEVEL to one of
Running with Docker Compose
For a quick start with the Pact Broker and Postgres, we have an example
Docker Compose setup you can use:
- Modify the
docker-compose.ymlfile as required.
docker-compose upto get a running Pact Broker and a clean Postgres database
Now you can access your local broker:
# Get IP of your running Docker instance DOCKER_HOST=$(docker-machine ip $(docker-machine active)) curl -v http://$DOCKER_HOST # you can visit in your browser too!
NOTE: this image should be modified before using in Production, in particular, the use of hard-coded credentials
See the Troubleshooting page on the wiki.