|
|
@@ -0,0 +1,130 @@ |
|
|
version: "3" |
|
|
|
|
|
networks: |
|
|
kong-net: |
|
|
driver: bridge |
|
|
|
|
|
services: |
|
|
|
|
|
####################################### |
|
|
# Postgres: The database used by Kong |
|
|
####################################### |
|
|
kong-database: |
|
|
image: postgres:11 |
|
|
restart: always |
|
|
networks: |
|
|
- kong-net |
|
|
environment: |
|
|
POSTGRES_USER: kong |
|
|
POSTGRES_DB: kong |
|
|
ports: |
|
|
# - "5432:5432" |
|
|
expose: |
|
|
- 5432 |
|
|
healthcheck: |
|
|
test: ["CMD", "pg_isready", "-U", "kong"] |
|
|
interval: 5s |
|
|
timeout: 5s |
|
|
retries: 5 |
|
|
|
|
|
####################################### |
|
|
# Kong database migration |
|
|
####################################### |
|
|
kong-migration: |
|
|
image: kong:0.14 |
|
|
command: "kong migrations up" |
|
|
networks: |
|
|
- kong-net |
|
|
restart: on-failure |
|
|
environment: |
|
|
KONG_PG_HOST: kong-database |
|
|
links: |
|
|
- kong-database |
|
|
depends_on: |
|
|
- kong-database |
|
|
|
|
|
####################################### |
|
|
# Kong: The API Gateway |
|
|
####################################### |
|
|
kong: |
|
|
image: kong:0.14 |
|
|
restart: always |
|
|
networks: |
|
|
- kong-net |
|
|
environment: |
|
|
KONG_PG_HOST: kong-database |
|
|
KONG_PROXY_LISTEN: 0.0.0.0:8000 |
|
|
KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443 |
|
|
KONG_ADMIN_LISTEN: 0.0.0.0:8001 |
|
|
depends_on: |
|
|
- kong-migration |
|
|
- kong-database |
|
|
healthcheck: |
|
|
test: ["CMD", "curl", "-f", "http://kong:8001"] |
|
|
interval: 5s |
|
|
timeout: 2s |
|
|
retries: 15 |
|
|
ports: |
|
|
# - "8001:8001" |
|
|
- "8000:8000" |
|
|
|
|
|
####################################### |
|
|
# Konga database prepare |
|
|
####################################### |
|
|
konga-prepare: |
|
|
image: pantsel/konga:0.13.0 |
|
|
command: "-c prepare -a postgres -u postgresql://kong@kong-database:5432/konga_db" |
|
|
networks: |
|
|
- kong-net |
|
|
restart: on-failure |
|
|
links: |
|
|
- kong-database |
|
|
depends_on: |
|
|
- kong-database |
|
|
|
|
|
####################################### |
|
|
# Konga: Kong GUI |
|
|
####################################### |
|
|
konga: |
|
|
image: pantsel/konga:0.13.0 |
|
|
restart: always |
|
|
networks: |
|
|
- kong-net |
|
|
environment: |
|
|
DB_ADAPTER: postgres |
|
|
DB_HOST: kong-database |
|
|
DB_USER: kong |
|
|
TOKEN_SECRET: km1GUr4RkcQD7DewhJPNXrCuZwcKmqjb |
|
|
DB_DATABASE: konga_db |
|
|
NODE_ENV: production |
|
|
depends_on: |
|
|
- kong-database |
|
|
ports: |
|
|
- "1337:1337" |
|
|
|
|
|
####################################### |
|
|
# Elastic: Set up an elastic docker behind Kong |
|
|
####################################### |
|
|
elastic: |
|
|
container_name: elastic |
|
|
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4 |
|
|
restart: always |
|
|
volumes: |
|
|
- es-data:/usr/share/elasticsearch/data |
|
|
environment: |
|
|
- "discovery.type=single-node" |
|
|
|
|
|
####################################### |
|
|
# Rstudio for having a nice IDE |
|
|
####################################### |
|
|
rstudio: |
|
|
image: rocker/tidyverse:3.5.0 |
|
|
container_name: rstudio |
|
|
restart: always |
|
|
ports: |
|
|
- "8787:8787" |
|
|
volumes: |
|
|
- ./rstudio:/home/mikkel |
|
|
environment: |
|
|
- USER=user1 |
|
|
- PASSWORD=user1 |