Docker install - API endpoint not found

Hello, I installed Tyk via Docker following the docs, the Dashboard is working but I found strange behaviours in the API portal and in testing the API, for example:

  • if I open the portal home (http://www.tyk-portal-test.com/, having configured the /etc/hosts file as required) I get the portal home page, but if, for example I click on “API catalogue” and the again on the same link, I get a “Not found” error and the url appears to be “http://www.tyk-portal-test.com/apis/apis/” (note the duplicated “/apis” path) => Is it something to do with url rewriting not correctly configured?

  • If I follow the steps to configure the test API (httpbin.org), when testing via curl command, I get a “Not found” message and nothing else.

Thanks in advance for any info.
Roberto

Are you sure you followed all the steps? Which docs did you follow?

Also, are you using the latest version of docker compose?

There are no redirects / rewrites, everything is handled through domain binding.

Without more info all I can say is you’ve missed something.

I followed this guide:
https://tyk.io/v1.9/setup/docker/

versions:
docker-compose version 1.6.2, build 4d72027
Docker version 1.10.2, build c3959b1

That should be the latest version of both tools at the moment.

domain binding: I only modified the /etc/hosts file of the system I am using to run the Browser, is it correct?
Also: during setup, I specified the hostname of the machine hosting the docker engine, instead of leaving it blank.

Thanks for the support.
Roberto

Sorry, an import info: looking at the logs of the dashboard container, I see this messages:
time=“2016-03-24T11:16:33Z” level=error msg=“No portal configuration found, please create a new portal configuratin”
time=“2016-03-24T11:16:33Z” level=warning msg=“Failed to retrieve object: not found”

so it seems something is missing (or went wrong) from the setup. How can I complete the configuration?

Thanks
Roberto

I just ran through this flow again, it looks like when a contributor recently updated the tyk_quickstart to the latest version of docker networking, they added some whizz-bang features that auto-created a lot of configs for you. It also mis-set the portal path.

To fix your existing install, edit the “Portal” API and change the listen path to “/portal/” and then navigate tot he portal home page on http://domain.com/portal/

All the routes will then work.

Alternatively, pull the latest tyk_quickstart and destroy all your existing containers to start again (this version will also use Tyk Pump).

Hello Martin, I pulled the latest quickstart and containers and now the portal as well as the gateway is working.
I configured a test API with an API key but saving the key I get this error:
Failed to save new session object to Tyk: Failed to create key: Post http://gateway:8080/tyk/keys/create: dial tcp: lookup gateway on 127.0.0.11:53: server misbehaving

Thanks for the support
Roberto Previtera

That’s quite odd. Can you raise a ticket in the GitHub repo?

Some googling indicates this may be a docker machine issue - are you running on OSX? If so, restarting kitematic might help.

Actually I am on a CentOS 7 server, I will try to restart docker engine.

Also: as far as I understood, the mongodb volumes are not (by default) mapped to external sotrage, is it on purpose for any reason?

Thanks!
Roberto

I think you could fix this - we’ll push a patch shortly, but just for the impatient, the issue is how the container is named.

(I don’t have a PC ATM so this is untested)

In the tyk_analytics.conf file that comes with the repo, change the gateway hostname from “gateway” to “tyk_gateway”

Then recreate or restart the containers

The reason why storage isn’t mapped externally is because the docker QuickStart is a demo :slight_smile:

Right, that bug has now been fixed. The docker quickstart should work as expected with all features working, looks like some bleeding-edge config settings had gotten in there…

Hello Martin, it seems to works fine now, I doing some test.

Thanks again for your support.
Roberto