This repository deploys Pact Broker using lightweight containers using Docker.
- 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.
- 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, 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.
- As the native dependencies for a postgres driver are baked into the docker container, you are limited to using postgres as a database.
- Apart from creating a postgres 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.
Running with Docker Compose
For a quick start with the Pact Broker and Postgre, 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
Publishing to Docker Hub
- Login to docker hub from console
This will prompt for your docker hub credentials and email
- Build the docker image for the dius account
docker login ./script/build_and_push.sh