@@ -3,29 +3,77 @@ services:
3
3
traefik :
4
4
container_name : traefik-v2
5
5
image : traefik:v2.3
6
- command : traefik --configFile /etc/traefik.yml
7
6
restart : unless-stopped
8
7
healthcheck :
9
8
test : ["CMD-SHELL", "wget -q --spider localhost:8080/ping || exit 1"]
10
- command : traefik --configFile /etc/traefik.yml
9
+ command :
10
+ - " --global.sendanonymoususage=false"
11
+ - " --global.checknewversion=false"
12
+ - " --api.dashboard=true"
13
+ # - "--api.debug=true"
14
+ - " --ping=true"
15
+ - " --entrypoints.http.address=:80"
16
+ - " --entrypoints.https.address=:443"
17
+ - " --entryPoints.web.forwardedHeaders.trustedIPs=172.18.0.0/24,192.168.31.0/24"
18
+ - " --log.level=WARN"
19
+ - " --log.filePath=/logs/traefik.log"
20
+ - " --log.format=json"
21
+ - " --accesslog.filepath=/logs/access.log"
22
+ - " --accesslog.format=json"
23
+ - " --providers.docker=true"
24
+ - " --providers.docker.watch=true"
25
+ - " --providers.docker.exposedbydefault=false"
26
+ - " --providers.docker.endpoint=unix:///var/run/docker.sock"
27
+ - " --providers.docker.useBindPortIP=false"
28
+ - " --providers.docker.network=traefik"
29
+ - " --providers.docker.swarmMode=false"
30
+ - " --providers.file=true"
31
+ - " --providers.file.directory=/etc/traefik/conf"
32
+ - " --providers.file.debugloggeneratedtemplate=true"
33
+
34
+ - " --certificatesresolvers.le.acme.storage=/data/ssl/acme.json"
35
+ - " --certificatesresolvers.le.acme.keytype=EC256"
36
+ - " --certificatesresolvers.le.acme.dnschallenge=true"
37
+ - " --certificatesresolvers.le.acme.dnschallenge.provider=cloudflare"
38
+ - " --certificatesresolvers.le.acme.dnschallenge.delaybeforecheck=15"
39
+ - " --certificatesresolvers.le.acme.dnschallenge.resolvers=1.1.1.1:53,8.8.8.8:53"
11
40
environment :
12
41
TZ : " Asia/Shanghai"
13
42
CF_API_EMAIL : ${CF_API_EMAIL}
14
43
CF_DNS_API_TOKEN : ${CF_DNS_API_TOKEN}
15
44
CF_ZONE_API_TOKEN : ${CF_ZONE_API_TOKEN}
16
45
volumes :
17
46
- /etc/localtime:/etc/localtime:ro
47
+ - /etc/timezone:/etc/timezone:ro
18
48
- /var/run/docker.sock:/var/run/docker.sock:ro
19
49
- ./traefik.yml:/etc/traefik.yml:ro
20
50
- ./conf:/etc/traefik/conf:ro
21
51
- ./ssl:/data/ssl
22
52
- ./logs:/logs
23
53
ports :
24
- - " 80:80"
25
- - " 443:443"
54
+ - " 80:80"
55
+ - " 443:443"
26
56
labels :
27
- - " traefik.docker.network=traefik"
28
- - " traefik.http.routers.traefik.service=api@internal"
57
+ - " traefik.enable=true"
58
+ - " traefik.docker.network=traefik"
59
+ - " traefik.http.routers.traefik.service=api@internal"
60
+ # 默认请求转发 https 端口
61
+ - " traefik.http.routers.traefik-dash-default.middlewares=https-redirect@file"
62
+ - " traefik.http.routers.traefik-dash-default.entrypoints=http"
63
+ - " traefik.http.routers.traefik-dash-default.rule=Host(`admin.example.com`)"
64
+ - " traefik.http.routers.traefik-dash.service=dashboard@internal"
65
+ # 处理网页
66
+ - " traefik.http.middlewares.basic-auth.basicauth.users=$AUTH_USER_LIST"
67
+ - " traefik.http.routers.traefik-dash-web.middlewares=basic-auth"
68
+ - " traefik.http.routers.traefik-dash-web.entrypoints=https"
69
+ - " traefik.http.routers.traefik-dash-web.rule=Host(`admin.example.com`) && PathPrefix(`/`)"
70
+ - " traefik.http.routers.traefik-dash-web.tls=true"
71
+ - " traefik.http.routers.traefik-dash-web.service=dashboard@internal"
72
+ # 处理接口
73
+ - " traefik.http.routers.traefik-dash-api.entrypoints=https"
74
+ - " traefik.http.routers.traefik-dash-api.rule=Host(`admin.example.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
75
+ - " traefik.http.routers.traefik-dash-api.tls=true"
76
+ - " traefik.http.routers.traefik-dash-api.service=api@internal"
29
77
networks :
30
78
- " traefik"
31
79
# ldap:
0 commit comments