Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 无法让docker swarm使用traefik_Node.js_Docker_Docker Compose_Docker Swarm_Docker Swarm Mode - Fatal编程技术网

Node.js 无法让docker swarm使用traefik

Node.js 无法让docker swarm使用traefik,node.js,docker,docker-compose,docker-swarm,docker-swarm-mode,Node.js,Docker,Docker Compose,Docker Swarm,Docker Swarm Mode,我正在尝试设置一个基本系统,其中traefik容器充当后端nodejs服务器的反向代理。Traefik位于自己的容器中,nodejs也有一个容器。这里的目标是允许在swarm模式下使用docker在不停机的情况下更新nodejs服务。下面是我对compose和traefik.yml文件的配置,但我似乎无法访问localhost:8080或nodejs服务器上的traefik仪表板 nodejs服务器正在端口9200上运行。查看现有的堆栈溢出答案,它们的配置与下面的配置基本相同。我是不是遗漏了什么

我正在尝试设置一个基本系统,其中traefik容器充当后端nodejs服务器的反向代理。Traefik位于自己的容器中,nodejs也有一个容器。这里的目标是允许在swarm模式下使用docker在不停机的情况下更新nodejs服务。下面是我对compose和traefik.yml文件的配置,但我似乎无法访问localhost:8080或nodejs服务器上的traefik仪表板

nodejs服务器正在端口9200上运行。查看现有的堆栈溢出答案,它们的配置与下面的配置基本相同。我是不是遗漏了什么

撰写.yml

version: "3.7"
services:
  api:
    image: example/hobby:v1
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
        window: 120s
      rollback_config:
        parallelism: 1
        delay: 20s
        order: stop-first
      update_config:
        parallelism: 1
        delay: 15s
        failure_action: rollback
        order: stop-first
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.api.rule=Host(`localhost`)"
        - "traefik.http.routers.api.entrypoints=insecure"
        # - "traefik.http.routers.api.service=api"
        - "traefik.http.services.api.loadbalancer.server.port=9200"
      placement:
        constraints:
          - node.role == worker
    env_file:
      - ./.env
    networks:
      - verse

  reverse-proxy:
    image: traefik:v2.3
    deploy:
      mode: global
      labels:
        # - "traefik.http.routers.reverse-proxy.middlewares=auth"
        - "traefik.enable=true"
        - "traefik.http.routers.api.entrypoints=insecure"
        - "traefik.http.routers.api.rule=Host(`localhost`)"
      placement:
        constraints: [node.role==manager]
    # ports:
    #   - target: 80
    #     published: 80
    #     mode: host
    #   - target: 8080
    #     published: 8080
    #     mode: host
    networks:
      - verse
    ports:
      - "80:80"
      - "8080:8080" # traefik dashboard
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      # - "/var/run/docker.sock:/var/run/docker.sock"
      - ./traefik.yml:/etc/traefik/traefik.yml

networks:
  verse:
    # driver: overlay
    external: false
特拉菲克

entryPoints:
  insecure:
    address: ":80"
  traefik:
    address: ":8080"

log:
  level: DEBUG
  # filePath: /path/to/log-file.log
  format: json

api:
  # insecure: true
  dashboard: true
  debug: true

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false
    swarmMode: true
    watch: true
    network: verse

middlewares:
  auth:
    basicAuth:
      users:
        - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"