docker 使用Traefik运行Nominatif时获得502错误网关

anhgbhbe  于 2022-11-22  发布在  Docker
关注(0)|答案(1)|浏览(120)

我有一个Traefik和Docker的服务器运行一些应用程序。我很满意它,但想在我的服务器上运行nominatim我被阻止。
当我运行配置非常接近我的其他应用程序的Nominatim图像时,我得到了一个502。我尝试了很多调整但都不起作用,我仍然有这个502。
我的旅行社.yml

version: '3'

services:
  traefik:
    image: "traefik:v2.9"
    container_name: "traefik"
    network_mode: "host"
    command:
      - "--api.dashboard=true"
      - "--api.insecure=true"
      - "--entryPoints.web.address=:80"
      - "--entryPoints.websecure.address=:443"
      - "--providers.docker=true"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
      - "--certificatesresolvers.myresolver.acme.email=XXXXXX"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
      - "--log.level=DEBUG"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "./letsencrypt:/letsencrypt"
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/root/shared:/root/shared"
    labels:
      - "traefik.http.services.dashboard.loadbalancer.server.port=80"
      - "traefik.http.middlewares.httpsonly.redirectscheme.scheme=https"
      - "traefik.http.middlewares.httpsonly.redirectscheme.permanent=true"
      - "traefik.http.routers.httpsonly.rule=HostRegexp(`{any:.*}`)"
      - "traefik.http.routers.httpsonly.middlewares=httpsonly"
      - "traefik.http.routers.dashboard.rule=Host(`tra.XXXXXXXX`)"
      - "traefik.http.routers.dashboard.entrypoints=websecure"
      - "traefik.http.routers.dashboard.tls.certresolver=myresolver"
      - "traefik.http.routers.dashboard.service=dashboard@internal"
      - "traefik.http.routers.api.rule=Host(`tra.XXXXXXX`) && PathPrefix(`/api`)"
      - "traefik.http.routers.api.service=api@internal"
      - "traefik.http.routers.api.entrypoints=websecure"
      - "traefik.http.routers.api.tls.certresolver=myresolver"
      - "traefik.http.routers.dashboard.middlewares=traefik-auth"
      - "traefik.http.routers.api.middlewares=traefik-auth"
      - "traefik.http.middlewares.traefik-auth.basicauth.usersfile=/root/shared/users"
      - "traefik.http.middlewares.traefik-auth.basicauth.removeheader=true"

我的名字yml

version: '3'

services:
  nominatim:
    image: "mediagis/nominatim:4.1"
    container_name: "nominatim"
    shm_size: '1gb'
    environment:
      - "PBF_URL=https://download.geofabrik.de/europe-latest.osm.pbf"
      - "REPLICATION_URL=https://download.geofabrik.de/europe-updates/"
      - "IMPORT_WIKIPEDIA=false"
      - "NOMINATIM_PASSWORD=XXXXXXX"
      - "IMPORT_STYLE=address"
    volumes:
      - "/root/nominatim/data:/var/lib/postgresql/14/main"
    ports:
      - "1237:8080"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nominatim-r.rule=Host(`nominatim.XXXXXX`)"
      - "traefik.http.routers.nominatim-r.entrypoints=websecure"
      - "traefik.http.routers.nominatim-r.tls.certresolver=myresolver"
      - "traefik.http.routers.nominatim-r.service=nominatim-s@docker"
      - "traefik.http.services.nominatim-s.loadbalancer.server.port=1237"

除了nominatim

之外,所有应用程序都可以通过域名访问的我的Docker堆栈
我的geodude.yaml示例

version: '3'

services:
  geodude:
    image: "ghcr.io/mueslidotio/geodude:main"
    container_name: "geodude"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.geodude.rule=Host(`api.XXXXXX`)"
      - "traefik.http.routers.geodude.entrypoints=websecure"
      - "traefik.http.routers.geodude.tls.certresolver=myresolver"
kqlmhetl

kqlmhetl1#

好吧,我“解决”了这个问题,只是Nominatim需要很长很长的时间才能开始。

相关问题