CentOS 上部署 Flutter 项目的实用方案
一、方案总览
二、方案一 Web 部署(推荐)
server {
listen 80;
server_name your_domain_or_IP;
root /path/to/build/web;
index index.html;
location / {
try_files $uri $uri/ /index.html; # 支持前端路由
}
}
FROM cirrusci/flutter:stable
WORKDIR /app
COPY . .
RUN flutter pub get
RUN flutter build web
EXPOSE 8080
CMD ["flutter", "run", "--release", "--web-port=8080", "--web-hostname=0.0.0.0"]
三、方案二 Linux 桌面可执行程序部署
# /etc/systemd/system/flutter_app.service
[Unit]
Description=Flutter Linux App
After=network.target
[Service]
Type=simple
ExecStart=/opt/flutter_app/your_app
WorkingDirectory=/opt/flutter_app
Restart=always
User=nobody
Environment=DISPLAY=:0
[Install]
WantedBy=multi-user.target
server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
四、移动端包构建与分发(服务器不涉及)
五、常见问题与排查