Skip to content

Instantly share code, notes, and snippets.

@iamlucianojr
Created May 2, 2019 09:29

Revisions

  1. iamlucianojr created this gist May 2, 2019.
    133 changes: 133 additions & 0 deletions docker-compose.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,133 @@
    version: "3"

    networks:
    kong-net:
    driver: bridge

    services:

    #######################################
    # Postgres: The database used by Kong
    #######################################
    kong-database:
    image: postgres:9.6
    restart: always
    networks:
    - kong-net
    environment:
    POSTGRES_USER: kong
    POSTGRES_DB: kong
    ports:
    - "5432:5432"
    healthcheck:
    test: ["CMD", "pg_isready", "-U", "kong"]
    interval: 5s
    timeout: 5s
    retries: 5

    #######################################
    # Kong database migration
    #######################################
    kong-migration:
    image: kong:latest
    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:latest
    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:next
    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:next
    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"

    #######################################
    # Portainer: Kong GUI
    #######################################
    portainer:
    image: portainer/portainer
    command: -H unix:///var/run/docker.sock
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - portainer_data:/data
    ports:
    - 9030:9000
    expose:
    - 9000

    #######################################
    # Vault
    #######################################
    vault:
    image: vault
    container_name: myvault
    ports:
    - "127.0.0.1:8200:8200"
    volumes:
    - ./file:/vault/file:rw
    - ./config:/vault/config:rw
    cap_add:
    - IPC_LOCK
    entrypoint: vault server -config=/vault/config/vault.json

    volumes:
    portainer_data: