You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取本地MinIO容器的完整S3-API URL并传入后端容器?

解决容器内访问MinIO S3-API的主机名解析问题

核心问题分析

Docker Compose默认会为所有服务创建自定义网络,同网络内的容器本应能通过服务名(比如minio)互相解析。你遇到的主机名无法生效问题,大概率不是DNS解析故障,而是@smithy客户端的配置不符合MinIO的运行要求。


方案1:修复@smithy客户端配置(优先推荐)

MinIO默认采用路径样式存储(示例:http://minio:9000/bucket/object),而AWS SDK(包括@smithy)默认使用虚拟主机样式;同时MinIO容器默认用HTTP而非HTTPS,需要显式禁用TLS。修改你的代码配置如下:

/* Set up the s3 store to pass to the tus server */
const datafileS3Store = new S3Store({
    s3ClientConfig: {
        bucket: process.env.DATAFILE_BUCKET,
        region: "eu-west-2",
        endpoint: process.env.MINIO_ENDPOINT, // 保持http://minio:9000不变
        credentials: {
            accessKeyId: process.env.MINIO_USERNAME,
            secretAccessKey: process.env.MINIO_PASSWORD,
        },
        forcePathStyle: true, // 强制使用路径样式,适配MinIO
        tls: false, // 禁用TLS,匹配MinIO默认HTTP配置
    },
})

修改后重启服务,即可通过http://minio:9000正常访问MinIO的S3-API。


方案2:给MinIO分配固定IP(备选)

如果必须使用IP而非服务名,可以在Docker Compose中自定义子网并为MinIO指定固定IP,避免每次启动IP变动:

修改docker-compose.yml:

version: '3.9'

# 自定义网络并指定子网
networks:
  app-net:
    ipam:
      config:
        - subnet: 172.21.0.0/16

services:
  backend:
    build: ./backend/tus/.
    container_name: backend
    ports:
      - "8181:8181"
    environment:
      - MINIO_ENDPOINT=http://172.21.0.10:9000 # 用固定IP作为端点
    depends_on:
      - minio
    networks:
      - app-net # 加入自定义网络

  minio:
    image: quay.io/minio/minio
    container_name: minio
    command: server /data --console-address ":9001"
    environment:
      - MINIO_ROOT_USER=minioadmin
      - MINIO_ROOT_PASSWORD=minioadmin
    volumes:
      - minio_data:/data
    ports:
      - "9000:9000"
      - "9001:9001"
    networks:
      app-net:
        ipv4_address: 172.21.0.10 # 为MinIO指定固定IP

配置后MinIO的IP会固定为172.21.0.10,后端容器可直接用该IP访问,无需担心IP变化。


验证方法

若不确定是DNS问题还是配置问题,可进入后端容器验证服务名解析:

# 进入backend容器
docker exec -it backend /bin/sh
# 尝试ping minio,查看是否能解析到IP
ping minio

如果能ping通,说明DNS正常,直接用方案1修复配置即可。

内容的提问来源于stack exchange,提问作者WhatTheWhat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:37:04