2017-07-19 61 views
0

我真的沒有得到如何與碼頭網絡一起使用traefik。Traefik與碼頭網絡

我嘗試運行「wekan」看板。如果我將端口綁定到主機,它可以很好地工作,所以它真的是通過traefik來實現的。這裏是我的泊塢窗,配置:

version: '2' 

services: 

wekandb: 
    image: mongo:3.2.14 
    container_name: wekan-db 
    command: mongod --smallfiles --oplogSize 128 
    networks: 
    - wekan-tier 
    expose: 
    - 27017 
    volumes: 
    - wekan-db:/data/db 
    - wekan-db-dump:/dump 

wekan: 
    image: wekanteam/wekan:latest 
    container_name: wekan-app 
    networks: 
    - wekan-tier 
# ports: 
#  - 8081:80 
    environment: 
    - MONGO_URL=mongodb://wekandb:27017/wekan 
    - ROOT_URL=https://wekan.domain.com 
    depends_on: 
    - wekandb 
    labels: 
    - "traefik.port=80" 
    - "traefik.backend=wekan" 
    - "traefik.frontend.rule=Host:wekan.domain.com" 
    - "traefik.docker.network=wekan_wekan-tier" 
volumes: 
wekan-db: 
    driver: local 
wekan-db-dump: 
    driver: local 

networks: 
wekan-tier: 
    driver: bridge 

我似乎無法找到一種方法來訪問該死的東西......你的回答將不勝感激,它不僅將讓我跑Wekan,也更新我使用鏈接的舊服務:鏈接而不是Docker Networks - 鏈接現已被棄用。

回答

1

我相信你在這裏有一個以上的問題。首先,在你的撰寫中你沒有Traefik服務,沒關係,Traefik將能夠從這裏的服務中看到容器,但是Traefik將無法發送請求到它,因爲Traefik服務和wekan服務不共享相同的網絡。

因此,要解決您需要創建一個特定的網絡Traefik並將其設置在您的撰寫文件也。

例子:

$ docker network create traefik-net 
$ docker service --name traefik --network traefik-net .... traefik .... 

其次,你需要定義網絡Traefik將使用與您的服務進行連接,這個網絡必須與Traefik服務共享一個。

所以,你wekan服務需要是這樣的:

wekan: 
    image: wekanteam/wekan:latest 
    container_name: wekan-app 
    networks: 
    - wekan-tier 
    - traefik-net 
    environment: 
    - MONGO_URL=mongodb://wekandb:27017/wekan 
    - ROOT_URL=https://wekan.domain.com 
    depends_on: 
    - wekandb 
    labels: 
    - "traefik.port=80" 
    - "traefik.backend=wekan" 
    - "traefik.frontend.rule=Host:wekan.domain.com" 
    - "traefik.docker.network=traefik-net"