Extension of official docker kong image with added support for Rancher, Kubernetes or Docker Cloud
10K+
This an extension of the official Docker image for Kong, with support to for Rancher, Kubernetes, or Tutum/Docker Cloud.
You can also spin this up by adding in my custom Rancher Catalog
The official docker-kong image allows for:
1. linking `Cassandra` or `Postgres` database containers
2. connecting to external databases via custom `kong.yml` config file by replacing the `/etc/kong/` volume.
However when using Rancher or Kubernetes, containers are organised into Services deployed across multiple machine node clusters. Therefore it's not feasible to mount custom config files into volumes on each machine which are spun up and down on demand. See related question here
Also there is no need to explicitly link containers since internal DNS resolutions for Services comes out of the box in platforms such as Rancher or Tutum.
By configuring Cassandra and Postgres purely using Environment Variables, it is a lot easier to point to either an external database instance or an internal database service. Without having to build a custom kong config.
Dockerfile links0.8.0 - (Dockerfile)0.8.1 - (Dockerfile)0.8.2 - (Dockerfile)0.8.3 - (Dockerfile)latest - (Dockerfile)Existing docker-kong usages still applies. The following extra Environment Variables are added:
| Env Var | Default | Description |
|---|---|---|
| DATABASE | cassandra | either cassandra or postgres as per official image |
| CLUSTER_LISTEN | 0.0.0.0:7946 | host ip and port. When rancher is specified, uses the Rancher Meta Data Service to work out the correct container ip address for cluster_listen. Other platforms can be extended quite easily. |
| Env Var | Default | Description |
|---|---|---|
| CASSANDRA_CONTACT_POINTS | kong-database:9046 | Mandatory. Specify custom values in the format of \"ip1:9046\",\"ip2:9046\" or use a internal service name |
| CASSANDRA_KEYSPACE | kong | Optional |
| CASSANDRA_USER | kong | Optional |
| CASSANDRA_PASSWORD | kong | Optional |
Example:
$ docker run -d --name kong \
-e DATABASE=cassandra \
-e CASSANDRA_CONTACT_POINTS='\"52.5.149.55:9042\",\"52.5.149.56:9042\"' \
-p 8000:8000 -p 8443:8443 -p 8001:8001 -p 7946:7946 -p 7946:7946/udp \
littlebaydigital/kong
or:
$ docker run -d --name kong \
-e DATABASE=cassandra \
-e CASSANDRA_CONTACT_POINTS='\"cassandra-service.kong-stack:9042\"' \
-p 8000:8000 -p 8443:8443 -p 8001:8001 -p 7946:7946 -p 7946:7946/udp \
littlebaydigital/kong
Sample Docker Compose: https://github.com/yunspace/my-docker-stacks/tree/master/kong/cassandra
| Env Var | Default | Description |
|---|---|---|
| POSTGRES_HOST | kong-database | Mandatory. Either a external hostname or internal service name |
| POSTGRES_PORT | 5432 | Optional. |
| POSTGRES_DATABASE | kong | Optional. |
| POSTGRES_USER | kong | Optional. |
| POSTGRES_PASSWORD | kong | Optional. |
Example:
$ docker run -d --name kong \
-e DATABASE=postgres \
-e POSTGRES_HOST=127.0.0.1 \
-p 8000:8000 -p 8443:8443 -p 8001:8001 -p 7946:7946 -p 7946:7946/udp \
--security-opt seccomp:unconfined \
littlebaydigital/kong
or:
$ docker run -d --name kong \
-e DATABASE=postgres \
-e POSTGRES_HOST=postgres-service.kong-stack \
-p 8000:8000 -p 8443:8443 -p 8001:8001 -p 7946:7946 -p 7946:7946/udp \
--security-opt seccomp:unconfined \
littlebaydigital/kong
Sample Docker Compose: https://github.com/yunspace/my-docker-stacks/tree/master/kong/postgres
Content type
Image
Digest
Size
106.2 MB
Last updated
about 10 years ago
docker pull littlebaydigital/kong