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'