version: '3.9' name: demo01-jib services: demo01-jib: image: svn.youshengyun.com:9923/demo01-jib:1.0 container_name: demo01-jib hostname: demo01-jib restart: unless-stopped extra_hosts: - "host.docker.internal:host-gateway" networks: - y9-share-net ports: - "7055:7055" environment: server.port: 7055 server.servlet.context-path: '/demo01' labels: # 定义demo01-jib路由,entrypoints=web,接受http请求 - "traefik.enable=true" - "traefik.http.routers.demo01-jib.entrypoints=web" - "traefik.http.routers.demo01-jib.rule=PathPrefix(`/demo01`)" # 定义demo01服务 - "traefik.http.services.demo01.loadbalancer.passHostHeader=true" - "traefik.http.services.demo01.loadbalancer.server.port=7055" # 指定路由demo01-jib的服务为demo01 - "traefik.http.routers.demo01-jib.service=demo01" # 默认轮询的方式进行负载,session sticky放开下面的注释 #- "traefik.http.services.demo01.loadbalancer.sticky.cookie.name=demo01" # 定义SSL,entrypoints=web-ssl,接受https请求,路由和服务要重新定义一次 - "traefik.http.routers.demo01-jib-ssl.tls=true" - "traefik.http.routers.demo01-jib-ssl.entrypoints=web-ssl" - "traefik.http.routers.demo01-jib-ssl.rule=Host(`www.dingzhaojun.top`) && PathPrefix(`/demo01`)" - "traefik.http.routers.demo01-jib-ssl.service=demo01" # 定义URL重定向中间件switch-domain,将http://localhost转换为https://www.dingzhaojun.top - "traefik.http.middlewares.switch-domain.redirectregex.regex=^http://localhost:8081/demo01(.*)" - "traefik.http.middlewares.switch-domain.redirectregex.replacement=https://www.dingzhaojun.top:7443/demo01$${1}" # 定义URL中的scheme、port重定向中间件to-https,将http转换为https,8081转换为7443,但不转换IP地址部分 - "traefik.http.middlewares.to-https.redirectscheme.scheme=https" - "traefik.http.middlewares.to-https.redirectscheme.permanent=true" - "traefik.http.middlewares.to-https.redirectscheme.port=7443" # 设置路由demo01-jib使用的中间件,switch-domain或者to-https二选一 # 也可以在compose-traefik.yml设置http跳转https,这样就不用在应用的docker里逐一设置了 #- "traefik.http.routers.demo01-jib.middlewares=switch-domain" networks: y9-share-net: external: true