CentOS 部署 Flutter 项目实用指南
在 CentOS 上部署 Flutter 项目,常见目标是 Web 静态站点(最简便、适合服务器环境)与 Android APK(需在服务器配置 Android SDK/NDK)。下面给出可直接落地的步骤与要点。
一 准备环境
- 安装 Flutter SDK(Linux x64)
- 下载并解压:
- wget https://storage.googleapis.com/flutter-release/releases/2.10.4/flutter-2.10.4-linux-x64.tar.xz
- tar -xf flutter-2.10.4-linux-x64.tar.xz -C /opt/flutter
- 配置环境变量:
- echo ‘export PATH=“$PATH:/opt/flutter/bin”’ >> ~/.bashrc
- source ~/.bashrc
- 可选:安装 FVM 进行多版本管理
- dart pub global activate fvm
- 建议将 $HOME/.pub-cache/bin 加入 PATH,便于使用 fvm 命令
- 可选:服务器安装 Snap(便于通过 snap 安装/管理 Flutter)
- sudo dnf install epel-release && sudo dnf upgrade
- sudo yum install snapd && sudo systemctl enable --now snapd.socket
- sudo ln -s /var/lib/snapd/snap /snap
- 之后可:sudo snap install flutter --classic
- 说明
- 构建 Android APK 需配置 Android SDK/NDK;构建 iOS 需在 macOS + Xcode 完成,无法在 CentOS 上直接构建。
二 部署 Flutter Web(推荐)
- 构建产物
- 在项目根目录执行:flutter build web(如使用 FVM:fvm flutter build web)
- 产物目录:build/web
- 方式 A:直接用 Nginx 托管
- 安装 Nginx:sudo yum install -y nginx
- 启动与开机自启:sudo systemctl start nginx && sudo systemctl enable nginx
- 部署文件:将 build/web 内容复制到 /usr/share/nginx/html(或你的站点目录)
- 访问测试:http://服务器IP 或域名
- 方式 B:Docker + Nginx(更便于环境隔离与回滚)
- 构建镜像(示例 Dockerfile,置于项目根目录):
- FROM nginx:stable-alpine
- COPY build/web /usr/share/nginx/html
- EXPOSE 80
- 构建与运行:
- docker build -t flutter-web .
- docker run -d --name flutter-web -p 80:80 flutter-web
- 访问测试:http://服务器IP
- 说明
- 以上流程适用于 CentOS/Amazon Linux 2 等常见服务器环境;Nginx 默认站点目录为 /usr/share/nginx/html。
三 构建并分发 Android APK(服务器端)
- 安装与配置 Android SDK/NDK
- 下载命令行工具并解压(示例路径 /opt/android-sdk)
- 配置 Flutter:
- flutter config --android-sdk /opt/android-sdk
- flutter config --android-ndk /opt/android-sdk/ndk/21.3.6528147
- 生成签名密钥(仅首次)
- keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
- 配置签名(android/key.properties)
- storePassword=你的密码
- keyPassword=你的密码
- keyAlias=key
- storeFile=/home/你的用户/key.jks
- 放置签名文件并构建
- 将 key.jks 放到 android/ 目录(或按 key.properties 路径放置)
- 构建 Release APK:flutter build apk --release
- 产物路径:build/app/outputs/flutter-apk/release/app-release.apk
- 分发
- 上传至应用商店或内部分发渠道(如蒲公英、Fir 等)
- 说明
- 构建 iOS 请在 macOS 使用 Xcode 完成;服务器端无法构建 iOS 包。
四 自动化构建与部署(可选)
- 使用 Jenkins 拉取代码并构建
- 安装 Jenkins(CentOS 常见做法:导入 Jenkins YUM 源后 yum 安装)
- 配置 Git 源码、构建触发器与构建脚本
- 示例脚本:
- fvm flutter build web
- rsync -av build/web/ /usr/share/nginx/html/
-
或构建 APK:flutter build apk --release 并归档产物
- 说明
- 可结合 Nginx 或 Docker 实现一键发布与回滚,适合团队协作与持续交付。