Feed-key not found

I’ve pulled community container yesterday and since then nginx-container crashes with

nginx-1              | 2026/02/26 11:00:55 [emerg] 1#1: host not found in upstream "feed-key:3000" in /etc/nginx/conf.d/default.conf:6
nginx-1              | nginx: [emerg] host not found in upstream "feed-key:3000" in /etc/nginx/conf.d/default.conf:6
nginx-1 exited with code 1

I wasn’t able to find any corresponding host configuration in compose.yml or anywhere in /var/lib/docker

Any idea how to fix this issue?

I made some important changes to the compose file today. Just tried it from scratch again and it works for me. Please try the following steps:

  1. Shutdown nginx container docker compose down nginx
  2. Remove the nginx templates volume docker volume rm greenbone-community-edition_nginx_templates_vol
  3. Download the newest compose file
  4. Pull the latest gvm-config container image docker compose pull gvm-config
  5. Restart nginx docker compose up nginx

I’m facing the same problem after updating to the latest docker-compose.yml. I followed the suggested commands, but nothing changed…

The same here:

nginx-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
nginx-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
nginx-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
nginx-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
nginx-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
nginx-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
nginx-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
nginx-1 | 20-envsubst-on-templates.sh: Running envsubst on /etc/nginx/templates/default.conf.template to /etc/nginx/conf.d/default.conf
nginx-1 | 20-envsubst-on-templates.sh: Running envsubst on /etc/nginx/templates/headers.conf.template to /etc/nginx/conf.d/headers.conf
nginx-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
nginx-1 | /docker-entrypoint.sh: Configuration complete; ready for start up
nginx-1 | 2026/02/26 16:38:23 [emerg] 1#1: host not found in upstream “feed-key:3000” in /etc/nginx/conf.d/default.conf:6
nginx-1 | nginx: [emerg] host not found in upstream “feed-key:3000” in /etc/nginx/conf.d/default.conf:6
gvm-config-1 | Starting gvm-config… copying nginx config files from /var/lib/gvm/gvm-config/ to /mnt/nginx/templates
gvm-config-1 | ‘/var/lib/gvm/gvm-config//default.conf.template’ → ‘/mnt/nginx/templates/default.conf.template’
gvm-config-1 | ‘/var/lib/gvm/gvm-config//headers.conf.template’ → ‘/mnt/nginx/templates/headers.conf.template’

Removed the volume, pulled the config..

Edit:

Newest compose file from: Greenbone Community Containers - Greenbone Community Documentation

Best regards

Very very strange why it works on my side. I have tested it extensively before publishing the changes.

Got also reported at Nginx doesn't start · Issue #616 · greenbone/docs · GitHub

For now either apply the changes mentioned in the linked GitHub issue or revert to the compose file from that latest tag of the docs repository.

I’ll try to implement a fix as soon as possible.

1 Like

Good Morning!
Can you please provide an estimate for your fix?
I just tried to follow your steps. Above mentioned path removing greenbone-community-edition_nginx_templates_vol did not work. And I failed to revert to previous version.
Would be great to continue our vulnerability scans.
Thank you for your support!

I had the same problem and fixed it by making Nginx use a local config file instead of the one in the volume.

In docker-compose.yml, add the volume mapping:

services:
  nginx:
    volumes:
      - nginx_templates_vol:/etc/nginx/templates:ro
      - ./nginx/default.conf.template:/etc/nginx/templates/default.conf.template:ro

Then create nginx/default.conf.template with your configuration, for example:

upstream gsad {
  server gsad:9392 max_fails=3 fail_timeout=30s;
}

http2 on;

server {
    listen ${NGINX_HTTP_PORT};
    return 301 https://$host:${NGINX_HTTPS_PORT}$request_uri;
}

server {
  client_max_body_size 1000m;
  listen ${NGINX_HTTPS_PORT} ssl;
  server_name ${NGINX_HOST};
  include /etc/nginx/conf.d/headers.conf;

  location ~ ^/(gmp|system_report|logout) {
    proxy_pass http://gsad;
    proxy_hide_header Access-Control-Allow-Origin;
    proxy_hide_header Content-Security-Policy;
    proxy_hide_header Strict-Transport-Security;
    proxy_hide_header X-Frame-Options;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

  location ~ ^/config\.(js|ts) {
    root /usr/share/nginx/html;
    try_files $uri =404;
  }

  location / {
    root /usr/share/nginx/html;
    index index.html;
    try_files $uri $uri/ /index.html;
  }
}

Now, running docker compose up will make the Nginx container use your local configuration and work correctly.

See my comment at Nginx doesn't start · Issue #616 · greenbone/docs · GitHub it’s fixed now

2 Likes