温馨提示×

centos flutter项目如何部署

小樊
34
2025-12-07 17:26:16
栏目: 智能运维

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 实现一键发布与回滚,适合团队协作与持续交付。

0