【问题标题】:Kong official docker images broken?Kong 官方 docker 镜像坏了?
【发布时间】:2018-03-09 17:17:22
【问题描述】:

我正在尝试在 docker\kubernetes 上运行 kong,我尝试了一堆图像(0.13、0.11、0.11,2,一些 alpine 图像),它们都具有相同的功能。如果我在其中运行kong,则不会发生任何事情。执行echo $? 返回 132。我尝试运行 /usr/local/bin/kong,但结果相同。

是我自己还是全部都坏了?

我正在使用具有最新 docker 版本之一的 ubuntu 16.04\windows docker 主机。他们都以同样的方式失败。

如果他们没问题,请解释我做错了什么?

【问题讨论】:

  • 我正在运行这个:kong:0.11.2-alpine(带有一堆自定义插件),它工作正常......所以它更有可能在你的环境中。你检查了https://hub.docker.com/_/kong/ 支持的标签吗?
  • 就像我说的,我尝试了一堆不同的主机\图像。那些没用的:kong:0.11; 0.11.2; 0.11-高山; 0.11.2-高山; 0.12; 0.12.2,RC 版本之一。这是使用 3 或 4 个不同的 ubuntu 虚拟机(来自 Azure 市场的新产品)和我的 Windows 笔记本电脑(两种 linux\windows 模式)
  • @ɐuıɥɔɐɯ 看看答案。

标签: docker kubernetes kong


【解决方案1】:

我发现了这个问题(虽然目前不知道如何解决它)。问题在于退出代码 132:SIGILL – 非法指令。

cat /proc/cpuinfo
model name      : AMD Opteron(tm) Processor 4171 HE

这导致我们here,这有点暴露了可悲的部分:该处理器不支持 SSE 4.2。这是proof

【讨论】:

    【解决方案2】:

    运行Kong需要做什么:

    1. 设置数据库,通常是 Cassandra 或 PostgreSQL,例如像这样:

      docker run -d --name kong-database \ -p 5432:5432 \ -e "POSTGRES_USER=kong" \ -e "POSTGRES_DB=kong" \ postgres:9.5

    2. 您需要在容器内的外壳中运行一次kong migrations up

      docker run --rm \ --link kong-database:kong-database \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ kong kong migrations up

    3. 从匹配环境入手:

      docker run -d --name kong \ --link kong-database:kong-database \ -e "KONG_DATABASE= postgres" \ -e "KONG_PG_HOST=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" \ -e "KONG_ADMIN_LISTEN_SSL=0.0.0.0:8444" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong

    如果您省略第二步,kong 不会开始说它需要运行迁移。

    【讨论】:

    • 很抱歉,但这并不能回答我的问题。看来二进制文件已损坏
    猜你喜欢
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2017-12-18
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多