在traefik码头工人的坏门户

问题描述 投票:1回答:1

我使用cloudflare CDN构建traefik。我使用docker container run命令来执行我的Docker容器执行由Drone CI执行。当我成功构建docker容器导致子域上的错误网关时,我遇到了问题。

泊坞窗,compose.yml

version: '3'

services:
  traefik:
    image: traefik:latest
    container_name: traefik
    restart: always
    domainname: ${DOMAINNAME}
    networks:
      - traefik_proxy
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    environment:
      - CF_API_EMAIL=${CLOUDFLARE_EMAIL}
      - CF_API_KEY=${CLOUDFLARE_API_KEY}
    labels:
      - "traefik.enable=true"
      - "traefik.backend=traefik"
      - "traefik.frontend.rule=Host:monitor.${DOMAINNAME}"
      - "traefik.port=8080"
      - "traefik.docker.network=traefik_proxy"
      - "traefik.frontend.headers.SSLRedirect=true"
      - "traefik.frontend.headers.STSSeconds=315360000"
      - "traefik.frontend.headers.browserXSSFilter=true"
      - "traefik.frontend.headers.contentTypeNosniff=true"
      - "traefik.frontend.headers.forceSTSHeader=true"
      - "traefik.frontend.headers.SSLHost=example.com"
      - "traefik.frontend.headers.STSIncludeSubdomains=true"
      - "traefik.frontend.headers.STSPreload=true"
      - "traefik.frontend.headers.frameDeny=true"
      - "traefik.frontend.auth.basic.users:${HTTP_USERNAME}:${HTTP_PASSWORD}"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /etc/traefik:/etc/traefik
      - /etc/docker/shared:/shared

networks:
  traefik_proxy:
    external:
      name: traefik_proxy

Traifik.toml

nsecureSkipVerify = true
defaultEntryPoints = ["https", "http"]

# WEB interface of Traefik - it will show web page with overview of frontend and backend configurations
[api]
  entryPoint = "traefik"
  dashboard = true
  address = ":8080"

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

# Let's encrypt configuration
[acme]
email = "[email protected]" #any email id will work
storage="acme.json"
entryPoint = "https"
acmeLogging=true
onDemand = false #create certificate when container is created
[acme.dnsChallenge]
  provider = "cloudflare"
  delayBeforeCheck = 300
[[acme.domains]]
   main = "example.com"
[[acme.domains]]
   main = "*.example.com"

# Connection to docker host system (docker.sock)
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "example.com"
watch = true
# This will hide all docker containers that don't have explicitly
# set label to "enable"
exposedbydefault = false

命令我曾用于运行drone执行的docker容器:

docker container run -d --name example-development --restart = unless- stopped --label“traefik.backend = example-development”--label“traefik.frontend.rule = Host:subdomain.example.com” - 标签“traefik.enable = false” - 标签“traefik.port = 6611” - 显示6611 cloud.canister.io:5000/username/repo

我的码头工人正在听http://127.0.0.1:6611

以上代码示例导致错误504网关超时。

docker devops traefik drone
1个回答
0
投票

Traefik需要与其连接的容器建立通用网络。在这种情况下,您需要使用--net=traefik_proxy运行容器。

如果你的容器在多个网络上,你还需要标签traefik.docker.network=traefik_proxy告诉traefik使用哪些网络。

© www.soinside.com 2019 - 2024. All rights reserved.