Разделение jwilder/nginx на два отдельных контейнера: в шаблоне Go не установлен $CurrentContainer

Я пытаюсь разделить контейнер jwilder/nginx-proxy на контейнер nginx и docker-gen, как описано здесь: https://github.com/nginx-proxy/nginx-proxy

Это мой файл docker-compose для стека nginx:

version: '3.5'

services:
  nginx:
    image: nginx:latest
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy"
    volumes:
      - certificates:/etc/nginx/certs
      - nginx-vhost.d:/etc/nginx/vhost.d
      - nginx-html:/usr/share/nginx/html
      - nginx-conf.d:/etc/nginx/conf.d

  docker-gen:
    image: jwilder/docker-gen
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.docker_gen"
    volumes:
      - certificates:/etc/nginx/certs
      - nginx-vhost.d:/etc/nginx/vhost.d
      - nginx-html:/usr/share/nginx/html
      - nginx-conf.d:/etc/nginx/conf.d
      - /etc/docker-gen/templates:/etc/docker-gen/templates
      - /var/run/docker.sock:/tmp/docker.sock:ro
    depends_on:
      - nginx
    command: "-notify-sighup nginx -watch -only-exposed /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf"

  letsencrypt-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    volumes:
      - certificates:/etc/nginx/certs
      - nginx-vhost.d:/etc/nginx/vhost.d
      - nginx-html:/usr/share/nginx/html
      - nginx-conf.d:/etc/nginx/conf.d
      - /var/run/docker.sock:/var/run/docker.sock:ro
    depends_on:
      - nginx

volumes:
  certificates:
  nginx-vhost.d:
  nginx-html:
  nginx-conf.d:

networks:
  default:
    name: proxy-network

А это файл моего веб-контейнера:

version: '3.5'

services:

  web:
    image: web-image
    restart: always
    volumes:
      - /config/.nginx:/etc/nginx/nginx.conf
    environment:
      - VIRTUAL_HOST=example.org
      - LETSENCRYPT_HOST=example.org
      - LETSENCRYPT_EMAIL=example@example.org
    networks:
      - default
      - proxy-network

networks:
  default:
    external:
      name: web-network
  proxy-network:
    external:
      name: proxy-network

К сожалению, файл конфигурации, созданный docker-gen из nginx.tmpl, не заполняет upstream часть, поэтому адрес не добавляется:

# example.org
upstream example.org {
}

Я немного отладил шаблон и обнаружил, что $CurrentContainerне установлен, поэтому я предполагаю, что мой веб-контейнер не может быть найден. Я проверил, что все контейнеры находятся в вышеупомянутых сетях иdocker ps дал мне 80/tcp в разделе портов, так что есть открытый порт.

В настоящее время мы используем образ jwilder/nginx-proxy, который работает нормально, поэтому я предполагаю, что моя конфигурация docker-compose где-то неверна. Какие-либо предложения?

0 ответов

Другие вопросы по тегам