name: flyio-cli
description: "使用 Fly.io 的 flyctl 命令行工具来部署和管理 Fly.io 上的应用。默认执行只读的诊断操作(状态/日志/配置/发布)。只有在获得用户明确批准后,才执行会改变状态的操作(部署、SSH 执行、密钥管理、扩缩容、机器管理、卷管理、Postgres 变更)。当被要求部署到 Fly.io、调试 fly deploy/build/runtime 故障、设置 GitHub Actions 部署/预览,或安全地管理 Fly 应用和 Postgres 时使用。"
使用 flyctl 安全、可重复地操作 Fly.io 应用。
fly status, fly logs, fly config show, fly releases, fly secrets list。在应用仓库目录下:
1) 确认目标应用
- fly app list
- fly status -a <应用名>
- 检查 fly.toml 中的 app = "..."
2) 验证与检查(只读)
- fly status -a <应用名>
- fly logs -a <应用名>
- fly config show -a <应用名>
(部署属于下方高风险操作,需要用户明确批准。)
fly deploy --verbose(获取更详细的构建日志)症状:构建过程中 Bundler 找不到特定平台的 gem,例如 nokogiri-…-x86_64-linux。
修复模式:
- 确保 Gemfile.lock 包含 Fly 构建器使用的 Linux 平台(通常是 x86_64-linux)。
- 示例:bundle lock --add-platform x86_64-linux
- 确保 Dockerfile 中的 Ruby 版本与 .ruby-version 文件一致。
(详见 references/rails-docker-builds.md。)
fly logs -a <应用名>fly config show -a <应用名>fly secrets list -a <应用名>这些命令可以在服务器上执行任意代码或改变生产环境状态。仅在用户明确要求时运行。
fly deploy / fly deploy --remote-onlyfly ssh console -a <应用名> -C "<命令>"fly secrets set -a <应用名> KEY=value详见 references/safety.md。
fly postgres listfly postgres attach <pg-app> -a <应用名>fly postgres db create <数据库名> -a <pg-app>fly postgres db list -a <pg-app>fly postgres connect -a <pg-app>superfly/flyctl-actions/setup-flyctl) 并运行 flyctl deploy。(详见 references/github-actions.md。)
references/safety.md:安全规则(默认只读;变更状态前需询问)。references/rails-docker-builds.md:Rails/Docker/Fly 构建失败模式及修复方法。references/github-actions.md:Fly 部署与预览工作流。scripts/fly_app_from_toml.sh:一个小型辅助脚本,用于从 fly.toml 中提取 Fly 应用名(仅 Shell,无需 Ruby)。