操作步骤
- 执行 prepare.sh 文件,生成kong 和 konga 数据库,随后自动执行数据库迁移操作
- kong 容器挂载自定义插件,注意修改 constants.lua 文件中的 plugins 参数(可选操作,如果没有自定义插件可跳过)
- 执行 docker-compose up 启动 kong、konga、pg 三个容器
prepare.sh文件
#!/bin/bash
set -e
echo "Creating Database Container..."
sudo docker-compose up -d postgresql
sleep 5
echo "Create Database Container Completed"
echo "##################################################################"
echo "Creating Database KONG..."
sudo docker-compose exec --user postgres postgresql psql -c "CREATE DATABASE KONG OWNER POSTGRES"
echo "Create Database KONG Completed"
echo "##################################################################"
echo "Creating Database KONGA..."
sudo docker-compose exec --user postgres postgresql psql -c "CREATE DATABASE KONGA OWNER POSTGRES"
echo "Create Database KONGA Completed"
echo "##################################################################"
DB_HOST=$(cat kong.env | grep DB_HOST | awk -F "=" '{print $2}')
DB_USER=$(cat kong.env | grep DB_USER | awk -F "=" '{print $2}')
DB_PASSWORD=$(cat kong.env | grep DB_PASSWORD | awk -F "=" '{print $2}')
DB_DATABASE=$(cat kong.env | grep DB_DATABASE | awk -F "=" '{print $2}')
DB_PORT=$(cat kong.env | grep DB_PORT | awk -F "=" '{print $2}')
# Kong Migration
echo "Kong Migrating..."
# Konga Migration
sudo docker-compose run kong kong migrations bootstrap
echo "Kong Migrate Completed"
echo "##################################################################"
# Konga Migration
echo "Konga Initializing..."
sudo docker-compose run konga -c prepare -a postgres -u postgresql://$DB_USER:$DB_PASSWORD@$DB_HOST:$DB_PORT/$DB_DATABASE
echo "Konga Init Completed"
# Down all containers
sudo docker-compose down
echo "##################################################################"
echo "##################################################################"
echo "All Steps Completed, Please Run 'docker-compose up -d' to Start the Service!"
docker-compose.yml 文件
version: "3.7"
networks:
network:
volumes:
pgdata:
services:
kong:
image: kong:3.1
container_name: qidian-kong
restart: always
networks:
- network
env_file:
- kong.env
ports:
- 48000:8000
- 48443:8443
depends_on:
- postgresql
konga:
image: pantsel/konga:0.14.9
container_name: qidian-konga
restart: always
networks:
- network
env_file:
- kong.env
ports:
- 41337:1337
depends_on:
- postgresql
postgresql:
image: postgres:11.1-alpine
container_name: qidian-postgresql
restart: always
networks:
- network
ports:
- 54324:5432
env_file:
- kong.env
volumes:
- pgdata:/var/lib/postgresql/data
Kong.env 文件
KONG_DATABASE=postgres
KONG_PG_HOST=postgresql
KONG_PG_USER=postgres
KONG_PG_PASSWORD=fOurED8pFJHhRxo0
KONG_PG_DATABASE=kong
KONG_CASSANDRA_CONTACT_POINTS=kong
KONG_PROXY_ACCESS_LOG=/dev/stdout
KONG_PROXY_ERROR_LOG=/dev/stderr
KONG_ADMIN_ACCESS_LOG=/dev/stdout
KONG_ADMIN_ERROR_LOG=/dev/stderr
KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
TOKEN_SECRET=6UM4DoVPmBQnzpZTtLE2a8RiKrHv9A0u
DB_ADAPTER=postgres
DB_HOST=postgresql
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=fOurED8pFJHhRxo0
DB_DATABASE=konga
NODE_ENV=production
shared_buffers=256MB
POSTGRES_PASSWORD=fOurED8pFJHhRxo0
PGTZ=Asia/Shanghai
TZ=Asia/Shanghai
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App