a local dev paas that uses docker, consul, and fabio
make sure you have the dependencies:
- hostess manages horde application host names in your
/etc/hosts
file. - docker manages your horde containers.
Create a hello world application (or use the example)
git clone git@github.com:benschw/horde.git
cd horde/example
Run it
horde up
Test it out
curl http://foo.horde
Since the container is sharing your project as a volume, you can edit httpdocs/index.php
and see your change immediately by refreshing your browser.
You can also see your services in consul: http://consul.horde/ui and the routing details provided by fabio: http://fabio.horde/routes.
If you are using rabbitmq, it's available at http://rabbitmq.horde.
Create horde.json
in your project root and define a driver
and a name
.
The name will be used to register your service with consul and the health path
used to give consul something to verify your application with.
If you are using the "fliglio" driver
, you may also include a db
that will be
created and phynx migrations in the /migrations
directory will be run.
In addition, your application's container will host the httpdocs
directory from your project root.
you must use the mysql credentials: admin / changeme
horde.json
{
"driver": "fliglio",
"name": "foo",
"db": "foo"
}
Rabbitmq and Chinchilla are also available for fliglio apps (use the rabbitmq creds: guest/guest)
if horde doesn't detect your docker bridge ip correctly, set up an environment variable declaring it:
export HORDE_IP='172.17.0.1'
to use consul for dns, configure /etc/default/docker
to use your bridge ip for dns. e.g. with
DOCKER_OPTS="--dns 172.17.0.1"
To specify a custom recorsor dns server (other than the default of 8.8.8.8) set the following env variable
HORDE_DNS=1.2.3.4