一. 搭建数据库postgres为9.6的
1. 创建网络
docker network create XXX
eg:
docker network create kong-net
2. 拉取postgres9.6镜像
docker pull postgres:9.6
3.启动数据库
docker run -dit \
--name postgres \
--restart always \
-e POSTGRES_PASSWORD=123456 \
-v /var/testPSQL/master:/var/lib/postgresql/data \ #挂载目录
-p 5432:5432 \
-u 0 \
postgres:9.6
4. 拉取kong
docker pull kong:2.4.1
5. 初始化kong连接的数据库
docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_USER=root" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=123456" \
kong:2.4.1 kong migrations bootstrap
6.启动kong
docker run -d \
--name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=10.240.131.51" \
-e "KONG_PG_USER=postgres" \
-e "KONG_PG_PASSWORD=123456" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:2.4.1
7. 拉取konga
docker pull pantsel/konga
8. 初始化konga连接的数据库
docker run --network=kong-net \
--rm pantsel/konga \
-c prepare -a postgres \
-u postgresql://root:123456@kong-database:5432/konga
9. 启动konga
docker run --network=kong-net \
-d -p 1338:1337 \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgres://postgres:123456@10.240.131.51:5432/konga" \
-e "NODE_ENV=production" --name konga pantsel/konga
二. 搭建数据库postgres为13.1的
1.拉去相应版本数据库跑即可
2.将(一)中的第八步初始化的数据库导过来
3.后运行修改过的konga镜像,需要可dd
第一次 -e “NODE_ENV=production” 可能报错
error: relation “public.konga_users” does not exist
可以换成-e “NODE_ENV=development” 成功启动容器再换回 production