首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一台主机上有两个带有Traefik的docker容器

一台主机上有两个带有Traefik的docker容器
EN

Stack Overflow用户
提问于 2019-05-12 00:47:32
回答 1查看 1K关注 0票数 0

我正试图在我的raspberry pi上设置一个服务器来运行Nextcloud和Firefly III,并将traefik作为反向代理。我正在使用docker-compose,Portainer可以很好地使用https (包含在测试代码中),但我根本无法运行Nextcloud或Firefly。当我使用萤火虫的官方文档时,我可以让它运行,当我使用NextcloudPi本身时,我也可以让它运行,但我不能让它们同时工作。FF给出了一个403禁止“你没有权限访问/在这个服务器上。”Nextcloud出现"Bad Gateway“错误时出错。我将非常感谢任何关于这方面的帮助,因为我已经阅读了尽可能多的网站,我不知道还能做什么。

这是我的docker-compose.yml:

代码语言:javascript
复制
version: "3.2"

services:
  # Reverse Proxy and Let's Encrypt
  traefik:
    container_name: traefik
    image: traefik:alpine
    restart: always
    networks:
      - srv
      - firefly_iii_net
      - proxy-tier
    ports:
      - 80:80
      - 443:443
    volumes:
      - /opt/traefik/traefik.toml:/traefik.toml
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/traefik/acme.json:/acme.json

  # Portainer
  portainer:
    container_name: portainer
    image: portainer/portainer
    restart: always
    networks:
      - srv
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/portainer:/data
    labels:
      - traefik.enable=true
      - "traefik.frontend.rule=Host:port.skdjfgsl.club"

  db:
    image: postgres:alpine
    restart: always
    volumes:
      - db:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=
      - POSTGRES_DB=nextcloud
      - POSTGRES_USER=nextcloud

  app:
    image: nextcloud:fpm-alpine
    restart: always
    volumes:
      - nextcloud:/var/www/html
    environment:
      - POSTGRES_HOST=db
      - POSTGRES_PASSWORD=
      - POSTGRES_DB=nextcloud
      - POSTGRES_USER=nextcloud
    depends_on:
      - db
    networks:
      - proxy-tier
    expose:
      - 80
      - 443
    labels:
      - traefik.enable=true
      - "traefik.frontend.rule=Host:nc.skdjfgsl.club"

  firefly_iii_app: 
    environment: 
      - FF_DB_HOST=firefly_iii_db
      - FF_DB_NAME=firefly
      - FF_DB_USER=firefly
      - FF_DB_PASSWORD=firefly
      - FF_APP_KEY=S0m3R@nd0mStr1ngOf32Ch@rsEx@ctly
      - FF_APP_ENV=local
      - FF_DB_CONNECTION=pgsql
      - TZ=Europe/Amsterdam
      - APP_LOG_LEVEL=debug
      - TRUSTED_PROXIES=**
    image: jc5x/firefly-iii
    links: 
      - firefly_iii_db
    networks: 
      - firefly_iii_net
    volumes: 
      - 
        source: firefly_iii_export
        target: /var/www/firefly-iii/storage/export
        type: volume
      - 
        source: firefly_iii_upload
        target: /var/www/firefly-iii/storage/upload
        type: volume
    expose:
      - 80
      - 443
    labels:
      - traefik.enable=true
      - "traefik.frontend.rule=Host:ff.skdjfgsl.club"
      - traefik.port=443

  firefly_iii_db: 
    environment: 
      - POSTGRES_PASSWORD=firefly
      - POSTGRES_USER=firefly
    image: "postgres:10"
    networks: 
      - firefly_iii_net
    volumes: 
      - "firefly_iii_db:/var/lib/postgresql/data"

networks:
  srv:
  firefly_iii_net: 
    driver: bridge
  proxy-tier:

volumes:
  db:
  nextcloud:
  firefly_iii_db: ~
  firefly_iii_export: ~
  firefly_iii_upload: ~

这是我的traefik.toml:

代码语言:javascript
复制
defaultEntryPoints = ["http", "https"]

logLevel = "DEBUG"

[entryPoints]
  [entryPoints.http]
    address = ":80"
      [entryPoints.http.redirect]
        entryPoint = "https"
  [entryPoints.https]
    address = ":443"
      [entryPoints.https.tls]

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "mydomain.com"
exposedByDefault = false
watch = true

[acme]
email = "email@mydomain.com"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"
EN

回答 1

Stack Overflow用户

发布于 2019-05-13 01:23:51

要转到端口443 (https),您需要调整traefik使用的协议,以便与具有以下标签的容器进行对话:

代码语言:javascript
复制
- traefik.protocol=https

错误的网关可能意味着traefik尝试连接到错误的端口、错误的IP或traefik,并且容器未部署到公共网络。您可以通过指定端口和网络名称来修复前两个问题:

代码语言:javascript
复制
- traefik.port=80
- traefik.docker.network=project_proxy-tier

其中,项目是撰写项目的名称(使用docker network ls查看网络的外部名称)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56092389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档