如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为 Flyway Command-line 的官方 Docker 镜像,支持 Redgate Flyway 全系列版本(包括社区版、团队版和企业版),并与 Flyway Pipelines 兼容。Flyway Pipelines 可帮助用户集中查看跨项目的数据库部署状态,实现部署记录(已部署内容、时间及位置)的便捷追踪。
*-azure 标签镜像)。4.1.1 基础验证
运行以下命令验证镜像可用性,将输出 Flyway Command-line 的使用说明:
bashdocker run --rm redgate/flyway
4.1.2 基本数据库操作
执行具体 Flyway 命令需传入必要参数(如数据库连接信息、许可证密钥)。示例:查看数据库信息:
bashdocker run --rm redgate/flyway -licenseKey="FL01..." -url=jdbc:h2:mem:test -user=sa info
4.1.3 Azure 兼容版本
带有 *-azure 标签的镜像(如 redgate/flyway:latest-azure)为适配 Azure Pipelines 代理作业需求,未定义入口点,需显式添加 flyway 命令:
bashdocker run --rm redgate/flyway:latest-azure flyway -url=jdbc:h2:mem:test info
通过挂载以下卷可自定义 Flyway 配置、驱动及迁移文件:
| 卷路径 | 用途 |
|---|---|
/flyway/conf | 存放 配置文件 |
/flyway/drivers | 存放数据库 JDBC 驱动 |
/flyway/sql | 存放 SQL 迁移脚本 |
/flyway/jars | 存放 Java 迁移脚本 |
4.3.1 命令行参数
直接通过命令行传入 Flyway 参数,常用参数包括:
-licenseKey:Flyway 许可证密钥(团队版/企业版必填)-url:数据库 JDBC 连接 URL-user:数据库用户名-password:数据库密码-schemas:目标数据库模式示例:执行迁移命令:
bashdocker run --rm redgate/flyway -licenseKey="FL01..." -url=jdbc:mysql://db:3306/mydb -user=root -password=P@ssw0rd migrate
4.3.2 配置文件
通过 /flyway/conf 卷挂载配置文件(如 flyway.conf),集中管理参数。配置文件格式示例:
propertiesflyway.url=jdbc:h2:mem:test flyway.user=sa flyway.licenseKey=FL01... flyway.schemas=public
运行时挂载配置文件目录:
bashdocker run --rm -v /absolute/path/to/confdir:/flyway/conf redgate/flyway info
将 SQL 迁移文件(如 V1__Initial.sql)放入本地目录,通过 /flyway/sql 卷挂载:
创建 SQL 文件 V1__Initial.sql:
sqlCREATE TABLE MyTable ( MyColumn VARCHAR(100) NOT NULL );
挂载 SQL 目录并执行迁移:
bashdocker run --rm -v /absolute/path/to/sqldir:/flyway/sql redgate/flyway -url=jdbc:h2:mem:test -user=sa migrate
若默认未包含目标数据库的 JDBC 驱动(可参考 官方文档 确认),或需使用特定版本驱动,可通过 /flyway/drivers 卷挂载:
将驱动 JAR 文件(如 mysql-connector-java-8.0.32.jar)放入本地目录。
挂载驱动目录并运行:
bashdocker run --rm -v /absolute/path/to/driverdir:/flyway/drivers -v /absolute/path/to/sqldir:/flyway/sql redgate/flyway -url=jdbc:mysql://db:3306/mydb -user=root migrate
通过 /flyway/jars 卷挂载包含 Java 迁移类或回调的 JAR 文件:
将 Java 迁移 JAR 文件放入本地目录。
挂载 JAR 目录并执行:
bashdocker run --rm -v /absolute/path/to/jardir:/flyway/jars -v /absolute/path/to/sqldir:/flyway/sql redgate/flyway -url=jdbc:h2:mem:test -user=sa migrate
通过 Flyway Pipelines 可集中追踪迁移结果,需使用 个人访问令牌(PAT)。示例:发布迁移结果至 Flyway Pipelines:
bashdocker run --rm -v /absolute/path/to/sqldir:/flyway/sql -v /absolute/path/to/confdir:/flyway/conf redgate/flyway migrate --publishResults=true --email=<Redgate账户邮箱> -token=<PAT令牌>
通过 docker-compose.yml 可同时启动 Flyway 和目标数据库容器,实现迁移自动化:
yamlversion: '3' services: flyway: image: redgate/flyway # 命令:等待数据库初始化(最多60次重试)后执行迁移 command: -licenseKey="FL01..." -url=jdbc:mysql://db -schemas=myschema -user=root -password=P@ssw0rd -connectRetries=60 migrate volumes: - ./sql:/flyway/sql # 挂载本地SQL迁移文件目录 depends_on: - db # 依赖数据库服务启动 db: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=P@ssw0rd # 数据库root密码 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # 字符集配置 ports: - 3306:3306 # 暴露数据库端口
启动服务:
bashdocker-compose up
Flyway 将自动等待 MySQL 初始化完成(最多 60 秒),随后执行迁移。
以下是 redgate/flyway 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务