【问题标题】:Docker error when I try to run Kong: nginx configuration is invalid尝试运行 Kong 时出现 Docker 错误:nginx 配置无效
【发布时间】:2021-09-11 16:22:29
【问题描述】:

我想使用 Docker 来运行带有 OIDC 插件的 Kong,以便将其与外部 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 中有这个 Dockerfile:

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

我尝试了不同的解决方案,但这个错误无处不在......

【问题讨论】:

  • 嗯,nginx配置的第80行是什么样的?
  • 它是一个容器,所以我不知道如何访问文件视图
  • 查看生成文件的一个选项是docker cp <container_name_or_id>:/usr/local/kong/nginx.conf nginx.conf

标签: docker nginx docker-compose dockerfile kong


【解决方案1】:

在港服务:

KONG_NGINX_PROXY_SET: '$session_secret amUgc8OpY3VyaKJIHGENldHRlIHJvdXRl'

必须是:

KONG_NGINX_PROXY_SET: '$$session_secret amUgc8OpY3VyaKJIHGENldHRlIHJvdXRl'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2013-09-17
    • 2017-04-04
    • 2018-05-28
    相关资源
    最近更新 更多