My goal is simple: Load a hello-world external plugin for Kong. I’ve decided to do this via mounted volume, but am running into significant problems that stop me from being able to run my simple hello-world external plugin.
I’ve isolated my problem down to the following commands, from scratch:
docker network create kong-net
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap
docker run -it --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_LUA_PACKAGE_PATH=/plugins/?.lua" \
-e "KONG_CUSTOM_PLUGINS=helloworld" \
-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" \
-v "kong/plugins/helloworld:/plugins" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:latest
In my local directory, I have the plugin source code sitting in ./kong/plugins/helloworld/
According to the Kong docs, I’m adjusting my Kong config file by adding “KONG_” prior to the item I want adjusted. This means I have KONG_CUMSTOM_PLUGINS=helloworld
and KONG_LUA_PACKAGE_PATH=/plugins/?.lua
Docker and Kong doesn’t like this, and when running the above commands I am greeted with the following:
docker: invalid reference format.
See 'docker run --help'.
Eliminating things one-by-one, the problem surrounds both the -e "KONG_CUSTOM_PLUGINS=helloworld"
and -e "KONG_LUA_PACKAGE_PATH=/plugins/?.lua" \
bits.
What’s happening here?
Thank you!