Trouble with Docker image

  • 12 September 2023
  • 9 replies


The Docker containers are deployed on this page:

The Indicum container is connected to the database (it is managed in the logs) and the Universal container is also connected in the logs and warnings are given for errors.

I've tried many things in YAML including ENABLE_REVERSE_PROXY and FALSE which says "404 page not found".

Please help!

This is my YAML (but apparently also with the standard and with just about all possible current ones).


Original in Dutch - Above translated:

Ik heb de Docker containers gedeployed zoals op deze pagina:

De Indicum container heeft connectie met de database (heb ik gecontroleerd in de logs) en ook de Universal container geeft in de logs geen warnings of errors aan.

Ik heb in de YAML veel dingen geprobeerd zoals de ENABLE_REVERSE_PROXY op FALSE te zetten, maar wat ik ook doe, ik krijg in de browser altijd "404 page not found".

Graag hulp!

Dit is mijn huidige YAML (maar heb dus ook geprobeerd met de default en met zo ongeveer alle mogelijk aanpassingen).

version: "3.8"
    image: traefik
      - 80:80
      - 443:443
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - ""
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "/var/run/docker.sock:/var/run/docker.sock"

      - SERVICE_URL=https://localhost/indicium/iam/iam
      - "traefik.enable=true"
      - "traefik.http.routers.frontend.rule=Host(`localhost`)"
      - "traefik.http.routers.frontend.tls=true"

      - "traefik.enable=true"
      - "traefik.http.routers.backend.rule=(Host(`localhost`) && PathPrefix(`/indicium`))"
      - "traefik.http.middlewares.backend.stripprefix.prefixes=/indicium"
      - "traefik.http.routers.backend.middlewares=backend"
      - "traefik.http.routers.backend.tls=true"



Best answer by Leon Kroon 13 September 2023, 17:44

View original

9 replies

Hi @techniekwebshop , a few things to try:

  • Are you able to reach Indicium when you add port mapping to the Indicium service in the compose file? This can be achieved by the following example, this will map port 8080 externally to port 80 of the container:

        - 8080:80

  • On what device are you trying to reach the deployed containers, the described setup will only work when accessing it on your own machine.

Hi Leon,

  • I can reach Inidicum on 8080
  • I am trying to reach the machine with the Docker images from an external machine, but I have all the ports accessible, like you can see with the below Indicium screenshot.



Hi @techniekwebshop, the reverse proxy used in the example (and in the configuration you used) only routes traffic coming from the domain localhost to the backend containers, traffic coming from any other source will not get routed. How to route incoming traffic is configured with labels for the Indicium and Universal service called traefik.http.routers.<routername>.rule= .

The documentation was updated very recently to add the ability to specify a hostname or IP address through the .env file, this might solve the issue.

It is also possible to manually edit the docker-compose.yaml file by replacing the entries at all labels containing localhost with the hostname or IP address to your liking.


I also noticed you are running an older version of Indicium against the current metasource version. I would recommend using a newer version of Indicium by changing the used tag.


Great! I have it working now, but I get a lot of errors in the Universal GUI not loading data.

The first think I would like to get right is to add a working SSL certificate so that the background workers of Universal won't give an error message.

But I can't get SSL to work. I tried the following (between the stars is the folder/filename of the host machine where the certificates are located):

      - "traefik.enable=true"
      - "traefik.http.routers.backend.rule=(Host(`${EXTERNAL_HOST}`) && PathPrefix(`/indicium`))"
      - "traefik.http.middlewares.backend.stripprefix.prefixes=/indicium"
      - "traefik.http.routers.backend.middlewares=backend"
      - "traefik.http.routers.backend.tls=true"
      - "traefik.http.routers.backend.certFile=*pathtocertfile*.cert"
      - "traefik.http.routers.backend.keyFile=*pathtokeyfile*.key"

Hi @techniekwebshop, I have not tested this, but I suspect the path you specify in certFile and keyFile need to exist inside the running Traefik container and not on the host machine. This can be solved with a volume/path mapping for the Traefik service.

It also is possible to add the following to the Traefik service for extra logging output:

      - "--log.level=DEBUG"


It worked, thanks! I set it up succesfully with Let's Encrypt. But the problem I had stayed unfortunately. It loads the Universal GUI including the menu's, but loading any comonent always fails.

The application works perfectly in our default Windows environment by the way.

I get errors like below. Is there any way to debug what's causing the errors?



Great to hear you got it working!

As for the http code occurring with Indicium, I assume the certificates are applied for both the Universal and Indicium service. Are the used versions for the Metasource, Universal and Indicium the same? According to your previous screenshot, they should all be on version 2023.2.


You assume correctly. I added the certresolver to both Universal and Indicium. 

I used TAG=latest so these are the latest versions, but I can't find out the actual version with ‘docker inspect’

Currently, version 2023.2.12 for both Universal and Indicium are tagged with latest. Our most recent releases are always tagged with `latest`.

For as far as I know, there is no simple way to see which version is used with the tag `latest` other than comparing the SHA256 hashes of each image and see which tags match the hash. I would not recommend spending too much time on this, since there is a simpler way.

The simplest way to see the version of the tag `latest` is by navigating to the running instances. For example, check the Indicium page which version number it displays.
Keep in mind that Docker (and Docker Compose) first require a pull (e.g. docker compose pull and then docker compose up -d) to ensure the tag `latest` still matches the actual latest version available on the remote registry.

As for the error(s) in Indicium, these end up in the logfiles, which are located in the directory `/opt/indicium/Logs`. The easiest way to access these logfiles is with a path mapping, for example ./logs:/opt/indicium/Logs.