I’m trying to run kong on docker\kubernetes and I tried a bunch of images (0.13, 0.11, 0.11,2, some of the alpine images) and all of them share the same feature. if I run kong
inside of those nothing happens. doing echo $?
returns 132. i tried running /usr/local/bin/kong
but the result is the same.
Is it just me or all of those are broken?
I’m using ubuntu 16.04\windows docker hosts with one of the latest docker versions. both of them fail in this same manner.
If they are fine, please explain what am I doing wrong?
What you need to do to run Kong:
Set up a database, normally Cassandra or PostgreSQL e.g. like this:
docker run -d --name kong-database \ -p 5432:5432 \ -e "POSTGRES_USER=kong" \ -e "POSTGRES_DB=kong" \ postgres:9.5
You need to run kong migrations up
in a shell inside of the container once:
docker run --rm \ --link kong-database:kong-database \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ kong kong migrations up
Start with the matching environment:
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
If you leave out the second step, kong won't start saying it needs the migrations to run.
I found the issue (no idea how to work around it at the moment though). The problem lies with the exit code 132: SIGILL – illegal instruction.
cat /proc/cpuinfo
model name : AMD Opteron(tm) Processor 4171 HE
This leads us here, which kind-of gives away the sad part: this processor doesn't support SSE 4.2. Here is the proof.