本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

SuperTokens MySQL Docker 镜像是集成了 MySQL 数据库的 SuperTokens 服务镜像。SuperTokens 是一个开源身份验证解决方案,提供用户登录、会话管理、密码重置、电子邮件验证等核心功能。该镜像专为需要与 MySQL 数据库集成的身份验证服务场景设计,支持灵活配置、日志管理和安全部署。
config.yaml 文件配置服务参数,满足不同部署需求。默认情况下,未指定 MySQL 连接参数时,镜像将使用内存数据库运行。启动命令如下:
# 使用内存数据库启动 SuperTokens docker run -p 3567:3567 -d registry.supertokens.io/supertokens/supertokens-mysql
支持通过环境变量或自定义 config.yaml 文件配置服务。若同时指定两种方式,仅 config.yaml 文件会生效。
通过 -e 参数传递环境变量,支持 Core(核心服务)和 MySQL(数据库)两类参数。
| 环境变量名称 | 说明(示例) |
|---|---|
API_KEYS | 访问 API 的密钥(多个密钥用逗号分隔) |
SUPERTOKENS_HOST | 服务绑定的主机地址(默认 0.0.0.0) |
SUPERTOKENS_PORT | 服务监听端口(默认 3567) |
ACCESS_TOKEN_VALIDITY | 访问令牌有效期(单位:秒,默认 3600) |
REFRESH_TOKEN_VALIDITY | 刷新令牌有效期(单位:秒,默认 604800) |
INFO_LOG_PATH | 信息日志文件路径(默认 null,输出至 Docker 日志) |
ERROR_LOG_PATH | 错误日志文件路径(默认 null,输出至 Docker 日志) |
MAX_SERVER_POOL_SIZE | 服务器连接池最大大小 |
DISABLE_TELEMETRY | 是否禁用遥测(true/false,默认 false) |
PASSWORD_HASHING_ALG | 密码哈希算法(如 argon2、bcrypt、firebase) |
LOG_LEVEL | 日志级别(info/warn/error,默认 info) |
IP_ALLOW_REGEX | 允许访问的 IP 正则表达式(如 ^192\.168\..*) |
IP_DENY_REGEX | 拒绝访问的 IP 正则表达式 |
| 环境变量名称 | 说明(示例) |
|---|---|
MYSQL_CONNECTION_URI | MySQL 连接 URI(格式:mysql://username:password@host:port/dbName) |
MYSQL_USER | MySQL 用户名(若未指定 MYSQL_CONNECTION_URI 则必填) |
MYSQL_PASSWORD | MySQL 用户密码(若未指定 MYSQL_CONNECTION_URI 则必填) |
MYSQL_HOST | MySQL 主机地址(默认 localhost) |
MYSQL_PORT | MySQL 端口(默认 3306) |
MYSQL_DATABASE_NAME | 数据库名称(默认 supertokens) |
MYSQL_CONNECTION_POOL_SIZE | MySQL 连接池大小(默认 10) |
MYSQL_TABLE_NAMES_PREFIX | 表名前缀(如 st_,默认无) |
环境变量配置示例:
通过环境变量连接 MySQL 数据库:
docker run \ -p 3567:3567 \ -e MYSQL_CONNECTION_URI="mysql://user:password@mysql-host:3306/supertokens_db" \ -e ACCESS_TOKEN_VALIDITY=7200 \ -e LOG_LEVEL="warn" \ -d registry.supertokens.io/supertokens/supertokens-mysql
若未提供 MYSQL_CONNECTION_URI,可通过独立参数配置:
docker run \ -p 3567:3567 \ -e MYSQL_USER="admin" \ -e MYSQL_PASSWORD="secure-pass" \ -e MYSQL_HOST="192.168.1.100" \ -e MYSQL_PORT="3306" \ -d registry.supertokens.io/supertokens/supertokens-mysql
通过挂载自定义 config.yaml 文件覆盖默认配置。配置文件需包含以下必填项:
core_config_version: 0 host: "0.0.0.0" mysql_config_version: 0 info_log_path: null # 输出至 Docker 日志 error_log_path: null # 输出至 Docker 日志
自定义配置文件示例:
config.yaml:core_config_version: 0 host: "0.0.0.0" port: 3567 access_token_validity: 7200 mysql_config_version: 0 mysql: user: "admin" password: "secure-pass" host: "mysql-host" port: 3306 database_name: "supertokens_db"
docker run \ -p 3567:3567 \ -v /path/to/local/config.yaml:/usr/lib/supertokens/config.yaml \ -d registry.supertokens.io/supertokens/supertokens-mysql
服务日志默认输出至 Docker 日志系统,可通过 docker logs <container-id> 查看:
docker logs <container-id> # 查看所有日志 docker logs <container-id> --tail 100 # 查看最近 100 行日志
若需将日志输出至文件并持久化,需配置日志路径并挂载共享卷:
docker run \ -p 3567:3567 \ -v /path/to/host/logs:/home/supertokens/logs \ # 挂载主机日志目录 -e INFO_LOG_PATH="/home/supertokens/logs/info.log" \ # 信息日志路径 -e ERROR_LOG_PATH="/home/supertokens/logs/error.log" \ # 错误日志路径 -e MYSQL_USER="admin" \ -e MYSQL_PASSWORD="secure-pass" \ -d registry.supertokens.io/supertokens/supertokens-mysql
启动容器前,需确保 MySQL 数据库已初始化(无需提前创建表,SuperTokens 会自动初始化表结构)。
若 MySQL 服务未就绪,SuperTokens 会在启动时等待约 1 小时,直至数据库可用,无需手动协调容器启动顺序。
若未配置 MYSQL_CONNECTION_URI、MYSQL_USER 和 MYSQL_PASSWORD,服务将自动使用内存数据库(仅适用于开发环境,生产环境需使用 MySQL)。
为增强安全性,可通过只读根文件系统运行容器。需挂载临时目录 /lib/supertokens/temp/ 用于服务运行时写入临时文件。
docker run \ -p 3567:3567 \ --mount source=/path/to/host/temp,destination=/lib/supertokens/temp/,type=bind \ # 挂载主机临时目录 --read-only \ # 启用只读根文件系统 -e MYSQL_CONNECTION_URI="mysql://user:password@mysql-host:3306/db" \ -d registry.supertokens.io/supertokens/supertokens-mysql
docker run \ -p 3567:3567 \ --tmpfs=/lib/supertokens/temp/:exec \ # 挂载 tmpfs 临时目录(带执行权限) --read-only \ -e MYSQL_CONNECTION_URI="mysql://user:password@mysql-host:3306/db" \ -d registry.supertokens.io/supertokens/supertokens-mysql
以下是 SuperTokens 与 MySQL 数据库的 Docker Compose 配置示例,适用于本地开发或测试环境:
version: '3.8' services: mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: "root-pass" MYSQL_DATABASE: "supertokens_db" MYSQL_USER: "supertokens_user" MYSQL_PASSWORD: "supertokens-pass" ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql # 持久化 MySQL 数据 supertokens: image: registry.supertokens.io/supertokens/supertokens-mysql depends_on: - mysql ports: - "3567:3567" environment: MYSQL_HOST: "mysql" MYSQL_PORT: "3306" MYSQL_USER: "supertokens_user" MYSQL_PASSWORD: "supertokens-pass" MYSQL_DATABASE_NAME: "supertokens_db" ACCESS_TOKEN_VALIDITY: 7200 LOG_LEVEL: "info" volumes: - ./logs:/home/supertokens/logs # 挂载日志目录 restart: unless-stopped volumes: mysql-data: # MySQL 数据卷
启动命令:
docker-compose up -d

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429