Last active
October 10, 2024 12:50
-
-
Save pantsel/73d949774bd8e917bfd3d9745d71febf to your computer and use it in GitHub Desktop.
example docker-compose.yml for kong, postgres and konga
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 bootstrap" | |
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" |
你好,我已经收到你的邮件了。
Because postgres always require DB_PASSWORD
To get konga-prepare to work, I had to include the db password in the connection string in the format username:password -
command: "-c prepare -a postgres -u postgresql://kong:kong@kong-database:5432/konga_db"
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
this worked for me, if the
version: "3"
networks:
kong-net:
driver: bridge
volumes:
kong-db:
driver: local
services:
#######################################
Postgres: The database used by Kong
#######################################
kong-database:
image: postgres:9.6
restart: always
networks:
- kong-net
environment:
POSTGRES_PASSWORD: kong
POSTGRES_USER: kong
POSTGRES_DB: kong
ports:
- "5432:5432"
healthcheck:
test: ["CMD", "pg_isready", "-U", "kong"]
interval: 5s
timeout: 5s
retries: 5
volumes:
- kong-db:/var/lib/postgresql/data
#######################################
Kong database migration
#######################################
kong-migration:
image: kong:latest
command: "kong migrations bootstrap"
networks:
- kong-net
restart: on-failure
environment:
KONG_PG_HOST: kong-database
KONG_DATABASE: postgres
KONG_PG_PASSWORD: kong
links:
- kong-database
depends_on:
- kong-database
#######################################
Kong: The API Gateway
#######################################
kong:
image: kong:latest
restart: always
networks:
- kong-net
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: 10.0.34.16
KONG_PG_USER: kong
KONG_PG_PASSWORD: kong
KONG_PROXY_LISTEN: 0.0.0.0:9000
KONG_PROXY_LISTEN_SSL: 0.0.0.0:9443
KONG_ADMIN_LISTEN: 0.0.0.0:9001
depends_on:
- kong-migration
- kong-database
healthcheck:
test: ["CMD", "curl", "-f", "http://kong:8001"]
interval: 5s
timeout: 2s
retries: 15
ports:
- "9001:9001"
- "9000:9000"
#######################################
Konga database prepare
#######################################
konga-prepare:
image: pantsel/konga:next
command: "-c prepare -a postgres -u postgresql://kong:kong@kong-database:5432/konga_db"
environment:
DB_ADAPTER: postgres
DB_HOST: 10.0.34.16
DB_USER: kong
DB_PASSWORD: kong
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: 10.0.34.16
DB_USER: kong
DB_PASSWORD: kong
TOKEN_SECRET: km1GUr4RkcQD7DewhJPNXrCuZwcKmqjb
DB_DATABASE: konga_db
NODE_ENV: production
depends_on:
- kong-database
ports:
- "1337:1337"