Minio 安装在 Traefik 后面

Minio install behind Traefik

我的 minio 运行 的上一个版本(从去年开始)远远落后于 traefikportainer,没有任何问题。我在 4 天前尝试升级到新版本,但从那以后一直在走下坡路。我得到了登录页面,但它不接受凭据;错误: {"code":500,"detailedMessage":"Post \"https://storage.example.com/\": dial tcp <ip>:443: i/o timeout","message":"invalid Login"} 我怀疑它与TLS证书有关。

下面是我的合成文件,我已经按要求生成了证书;欢迎任何帮助:

 minio:
image: minio/minio
container_name: minio
restart: unless-stopped
command: server /data --certs-dir "./minio-data/certs" --address ":9000" --console-address ":9001"
networks:
  - traefik-proxy2
expose:
  - "9000"
  - "9001"
volumes:
  - ./minio-data:/data

environment:
  - "MINIO_ROOT_USER=love"
  - "MINIO_ROOT_PASSWORD=love1234"
  - "MINIO_BROWSER_REDIRECT_URL=https://stash.example.com"
  - "MINIO_SERVER_URL=https://storage.example.com"
labels:
  - "traefik.enable=true"
  - "traefik.http.services.minio.loadbalancer.server.port=9000"
  - "traefik.http.routers.minio.rule=Host(`storage.example.com`)"
  - "traefik.http.middlewares.minio-https-redirect.redirectscheme.scheme=https"
  - "traefik.http.routers.minio.middlewares=minio-https-redirect"
  - "traefik.http.routers.minio.entrypoints=https"
  - "traefik.http.routers.minio.service=minio"
  - "traefik.http.routers.minio.tls=true"
  - "traefik.http.routers.minio.tls.certresolver=http"
  - "traefik.http.services.minio-console.loadbalancer.server.port=9001"
  - "traefik.http.routers.minio-console.rule=Host(`stash.example.com`)"

我遇到了同样的 Invalid Login 错误:Post "http://minio.localhost/": dial tcp: lookup minio.localhost on 127.0.0.11:53: no such host

以下 docker-compose.yml 有效。解决方案是不使用 MINIO_DOMAINMINIO_SERVER_URL。请参阅 # comments 处的 environment: 变量。

version: "3.3"

services:
  minio:
    # Please use fixed versions :D
    image: minio/minio:RELEASE.2021-10-06T23-36-31Z
    networks:
      - traefik-proxy2
    volumes:
      - minio-data:/data
    command:
      - server
      - /data
      - --console-address
      - ":9001"
    environment:
      - MINIO_ROOT_USER=love
      - MINIO_ROOT_PASSWORD=love1234
      # Do NOT use MINIO_DOMAIN or MINIO_SERVER_URL with Traefik.
      # All Routing is done by Traefik, just tell minio where to redirect to.
      - MINIO_BROWSER_REDIRECT_URL=http://stash.localhost
    deploy:
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik-proxy2
        - traefik.constraint-label=traefik-proxy2
        - traefik.http.routers.minio.service=minio
        - traefik.http.routers.minio.rule=Host(`storage.localhost`)
        - traefik.http.services.minio.loadbalancer.server.port=9000
        - traefik.http.routers.minio-console.service=minio-console
        - traefik.http.routers.minio-console.rule=Host(`stash.localhost`)
        - traefik.http.services.minio-console.loadbalancer.server.port=9001

volumes:
  minio-data:

networks:
  traefik-proxy2:
    external: true