我正在尝试在docker\kubernetes上运行kong,我尝试了一堆图像(0.13,0.11,0.11,2,一些高山图像(,它们都具有相同的功能。 如果我在里面运行kong
什么都不会发生。 做echo $?
返回 132。 我尝试运行/usr/local/bin/kong
但结果是一样的。
是只有我一个人还是所有这些都坏了?
我正在使用 ubuntu 16.04\windows docker 主机和最新的 docker 版本之一。 它们都以同样的方式失败。
如果他们没事,请解释我做错了什么?
我发现了这个问题(目前不知道如何解决它(。问题在于退出代码 132:SIGILL – 非法指令。
cat /proc/cpuinfo
model name : AMD Opteron(tm) Processor 4171 HE
这把我们引到了这里,这有点暴露了可悲的部分:该处理器不支持SSE 4.2。这是证据。
运行 Kong 需要做什么:
-
设置一个数据库,通常是Cassandra或PostgreSQL,例如:
docker run -d --name kong-database -p 5432:5432 -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" postgres:9.5
-
您需要在容器内的 shell 中运行一次
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
-
从匹配环境开始:
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就不会开始说它需要迁移才能运行。