Docker 尝试 运行 Kong 时出错:nginx 配置无效
Docker error when I try to run Kong: nginx configuration is invalid
我想使用 Docker 到 运行 Kong 和 OIDC 插件,以便将它与外部 Keycloak 服务器连接。由于 nginx 服务器配置错误,Kong 容器以代码 1 退出。我有这个 docker-compose.yml:
version: '3.8'
networks:
kong-net:
services:
kong:
build: ./kong
image: amilcar-backend/kong
networks:
- kong-net
depends_on:
- kong-db
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: kong-db
KONG_PG_DATABASE: kong
KONG_PG_PASSWORD: kong
KONG_PG_USER: kong
KONG_ADMIN_ACCESS_LOG: /dev/stdout
KONG_ADMIN_ERROR_LOG: /dev/stderr
KONG_PROXY_ACCESS_LOG: /dev/stdout
KONG_PROXY_ERROR_LOG: /dev/stderr
KONG_ADMIN_LISTEN: 0.0.0.0:8001
KONG_CASSANDRA_CONTACT_POINTS: postgres
KONG_NGINX_PROXY_SET: '$session_secret amUgc8OpY3VyaKJIHGENldHRlIHJvdXRl'
KONG_PLUGINS: oidc
ports:
- '8000:8000'
- '8001:8001'
kong-migration:
image: amilcar-backend/kong
command: "kong migrations bootstrap"
networks:
- kong-net
restart: on-failure
environment:
KONG_PG_HOST: kong-db
KONG_PG_DATABASE: kong
KONG_PG_PASSWORD: kong
depends_on:
- kong-db
- kong
kong-db:
image: 'postgres:12.6-alpine'
container_name: 'kong-db'
networks:
- kong-net
ports:
- '5436:5432'
environment:
POSTGRES_USER: kong
POSTGRES_PASSWORD: kong
POSTGRES_DB: kong
volumes:
- kong-postgres:/var/lib/postgresql/data
db:
image: 'postgres:12.6-alpine'
container_name: 'db'
ports:
- '5434:5432'
env_file: .env
volumes:
- postgres:/var/lib/postgresql/data
volumes:
postgres:
kong-postgres:
我在 ./kong:
中有这个 Docker 文件
FROM kong:latest
USER root
RUN luarocks install kong-oidc
USER kong
CMD ["kong", "docker-start"]
一切都很好,除非 Kong 容器抛出此错误:
kong_1 | Error: could not prepare Kong prefix at /usr/local/kong: nginx configuration is invalid (exit code 1):
kong_1 | nginx: [emerg] invalid number of arguments in "set" directive in /usr/local/kong/nginx-kong.conf:80
kong_1 | nginx: configuration file /usr/local/kong/nginx.conf test failed
我尝试了不同的解决方案,但这个错误随处可见...
香港服务:
KONG_NGINX_PROXY_SET: '$session_secret amUgc8OpY3VyaKJIHGENldHRlIHJvdXRl'
必须是:
KONG_NGINX_PROXY_SET: '$$session_secret amUgc8OpY3VyaKJIHGENldHRlIHJvdXRl'
我想使用 Docker 到 运行 Kong 和 OIDC 插件,以便将它与外部 Keycloak 服务器连接。由于 nginx 服务器配置错误,Kong 容器以代码 1 退出。我有这个 docker-compose.yml:
version: '3.8'
networks:
kong-net:
services:
kong:
build: ./kong
image: amilcar-backend/kong
networks:
- kong-net
depends_on:
- kong-db
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: kong-db
KONG_PG_DATABASE: kong
KONG_PG_PASSWORD: kong
KONG_PG_USER: kong
KONG_ADMIN_ACCESS_LOG: /dev/stdout
KONG_ADMIN_ERROR_LOG: /dev/stderr
KONG_PROXY_ACCESS_LOG: /dev/stdout
KONG_PROXY_ERROR_LOG: /dev/stderr
KONG_ADMIN_LISTEN: 0.0.0.0:8001
KONG_CASSANDRA_CONTACT_POINTS: postgres
KONG_NGINX_PROXY_SET: '$session_secret amUgc8OpY3VyaKJIHGENldHRlIHJvdXRl'
KONG_PLUGINS: oidc
ports:
- '8000:8000'
- '8001:8001'
kong-migration:
image: amilcar-backend/kong
command: "kong migrations bootstrap"
networks:
- kong-net
restart: on-failure
environment:
KONG_PG_HOST: kong-db
KONG_PG_DATABASE: kong
KONG_PG_PASSWORD: kong
depends_on:
- kong-db
- kong
kong-db:
image: 'postgres:12.6-alpine'
container_name: 'kong-db'
networks:
- kong-net
ports:
- '5436:5432'
environment:
POSTGRES_USER: kong
POSTGRES_PASSWORD: kong
POSTGRES_DB: kong
volumes:
- kong-postgres:/var/lib/postgresql/data
db:
image: 'postgres:12.6-alpine'
container_name: 'db'
ports:
- '5434:5432'
env_file: .env
volumes:
- postgres:/var/lib/postgresql/data
volumes:
postgres:
kong-postgres:
我在 ./kong:
中有这个 Docker 文件FROM kong:latest
USER root
RUN luarocks install kong-oidc
USER kong
CMD ["kong", "docker-start"]
一切都很好,除非 Kong 容器抛出此错误:
kong_1 | Error: could not prepare Kong prefix at /usr/local/kong: nginx configuration is invalid (exit code 1):
kong_1 | nginx: [emerg] invalid number of arguments in "set" directive in /usr/local/kong/nginx-kong.conf:80
kong_1 | nginx: configuration file /usr/local/kong/nginx.conf test failed
我尝试了不同的解决方案,但这个错误随处可见...
香港服务:
KONG_NGINX_PROXY_SET: '$session_secret amUgc8OpY3VyaKJIHGENldHRlIHJvdXRl'
必须是:
KONG_NGINX_PROXY_SET: '$$session_secret amUgc8OpY3VyaKJIHGENldHRlIHJvdXRl'