minio部署在traefik v3上

minio可以作为存储使用,所以需要用docker来启动minio使用作为后台存储,本身他也支持多磁盘。 docker-compose.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
name: minio

services:
  minio:
    container_name: ${SERVICE_NAME}
    image: ${DOCKER_IMAGE}
    ports:
      - 9000:${API_PORT}
      - 9001:${DASHBOARD_PORT}
    environment:
      # refs: https://min.io/docs/minio/linux/reference/minio-server/settings/core.html
      - MINIO_DOMAIN=${API_DOMAIN}
      - MINIO_COMPRESSION_ENABLE=on
      - MINIO_COMPRESSION_ALLOW_ENCRYPTION=off
      # refs: https://min.io/docs/minio/linux/reference/minio-server/settings/root-credentials.html
      - MINIO_ROOT_USER=${ADMIN_USER}
      - MINIO_ROOT_PASSWORD=${ADMIN_PASS}
      - MINIO_API_ROOT_ACCESS=on
      # refs: https://min.io/docs/minio/linux/reference/minio-server/settings/console.html
      - MINIO_BROWSER=on
      - MINIO_BROWSER_LOGIN_ANIMATION=off
      - MINIO_BROWSER_REDIRECT=false
      - MINIO_BROWSER_SESSION_DURATION=365d
      # refs: https://min.io/docs/minio/linux/reference/minio-server/minio-server.html
    command: server /data --address=":${API_PORT}" --console-address=":${DASHBOARD_PORT}"
    networks:
      - traefik
    labels:
      # 用于 Traefik 服务发现
      - "traefik.enable=true"
      - "traefik.docker.network=traefik"
      # MinIO API 服务相关
      # - HTTP 相关设置:
      #   使用 HTTP 协议访问 minio,将使用 `http`(80端口) 提供服务
      - "traefik.http.routers.minio-http.entrypoints=http"
      #   并自动跳转至 HTTPS 协议(443端口)
      - "traefik.http.routers.minio-http.middlewares=redir-https"
      #   默认服务域名为 minio.lab.io
      - "traefik.http.routers.minio-http.rule=Host(`${API_DOMAIN}`)"
      #   服务名称为 noop@internal,表示不提供任何服务 (因为自动跳转,没必要请求服务)
      - "traefik.http.routers.minio-http.service=noop@internal"
      # - HTTPS 相关设置:
      #   使用 HTTPS 协议访问 minio,将使用 `https`(443端口) 提供服务
      - "traefik.http.routers.minio-https.entrypoints=https"
      #   在这个端口上使用 TLS 协议
      - "traefik.http.routers.minio-https.tls=true"
      #   对响应内容启用 GZIP 压缩
      - "traefik.http.routers.minio-https.middlewares=gzip"
      #   默认服务域名为 minio.lab.io
      - "traefik.http.routers.minio-https.rule=Host(`${API_DOMAIN}`)"
      #   HTTPS 服务名称为 minio-backend,使用 9000 端口提供服务
      - "traefik.http.routers.minio-https.service=minio-backend"
      # 声明服务名称为 minio-backend,使用 9000 端口提供服务
      - "traefik.http.services.minio-backend.loadbalancer.server.scheme=http"
      - "traefik.http.services.minio-backend.loadbalancer.server.port=${API_PORT}"

      # MinIO Admin 服务相关
      # - HTTP 相关设置:
      #   使用 HTTP 协议访问 minio,将使用 `http`(80端口) 提供服务
      - "traefik.http.routers.minio-admin-http.entrypoints=http"
      #   并自动跳转至 HTTPS 协议(443端口)
      - "traefik.http.routers.minio-admin-http.middlewares=redir-https"
      #   默认服务域名为 minio.console.lab.io
      - "traefik.http.routers.minio-admin-http.rule=Host(`${DASHBOARD_DOMAIN}`)"
      #   服务名称为 noop@internal,表示不提供任何服务 (因为自动跳转,没必要请求服务)
      - "traefik.http.routers.minio-admin-http.service=noop@internal"
      # - HTTPS 相关设置:
      #   使用 HTTPS 协议访问 minio,将使用 `https`(443端口) 提供服务
      - "traefik.http.routers.minio-admin-https.entrypoints=https"
      #   在这个端口上使用 TLS 协议
      - "traefik.http.routers.minio-admin-https.tls=true"
      #   对响应内容启用 GZIP 压缩
      - "traefik.http.routers.minio-admin-https.middlewares=gzip"
      #   默认服务域名为 minio.console.lab.io
      - "traefik.http.routers.minio-admin-https.rule=Host(`${DASHBOARD_DOMAIN}`)"
      #   HTTPS 服务名称为 minio-backend,使用 9001 端口提供服务
      - "traefik.http.routers.minio-admin-https.service=minio-admin-backend"
      # 声明服务名称为 minio-backend,使用 9001 端口提供服务
      - "traefik.http.services.minio-admin-backend.loadbalancer.server.scheme=http"
      - "traefik.http.services.minio-admin-backend.loadbalancer.server.port=9001"
    volumes:
      - ./minio/data:/data
      - ./minio/config:/root/.minio
    extra_hosts:
      - "${API_DOMAIN}:127.0.0.1"
      - "${DASHBOARD_DOMAIN}:127.0.0.1"
    healthcheck:
        # refs:
        # - https://min.io/docs/minio/linux/reference/minio-mc/mc-ready.html
        # - https://github.com/minio/minio/issues/18389
        test: ["CMD", "mc", "ready", "local"]
        interval: 3s
        timeout: 10s
        retries: 12

networks:
  traefik:
    external: true

建立一个.env文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14

# Docker 服务名称
SERVICE_NAME=minio
# 使用的应用镜像
DOCKER_IMAGE=minio/minio:RELEASE.2024-08-03T04-33-23Z
# 服务域名和端口
API_DOMAIN=minio.lab.io
API_PORT=9000
# 管理域名和端口
DASHBOARD_DOMAIN=minio.console.lab.io
DASHBOARD_PORT=9001
# 超级管理员
ADMIN_USER=soulteary
ADMIN_PASS=soulteary

部署之后,访问minio:https://minio.console.lab.com/ image.png image.png 创建bucket。 image.png 这样就可以访问bucket下的文件, image.png . s3 brower image.png

Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up