|
|
||
|---|---|---|
| .. | ||
| Dockerfile | ||
| README.md | ||
| devcontainer.json | ||
| docker-compose.webstorm.yml | ||
| docker-compose.yml | ||
| webstorm-setup.md | ||
README.md
Expo EAS Android Dev Container
这个开发容器环境专门为 Expo EAS 本地构建 Android APK 而设计,支持 VS Code 和 JetBrains WebStorm IDE。
功能特性
- Linux Docker 环境: 基于 Ubuntu 22.04
- Android SDK: 预装 Android SDK 34 和构建工具
- Java 17: 支持 Android 开发的 Java 环境
- Node.js 20 LTS: 最新稳定版本的 Node.js
- Expo CLI: 最新版本的 Expo 命令行工具
- EAS CLI: 用于本地构建的 EAS 工具
- IDE 支持: 同时支持 VS Code 和 WebStorm
使用方法
WebStorm IDE 使用
-
安装 Docker 插件
- 打开 WebStorm
- 进入
File→Settings→Plugins - 搜索并安装
Docker插件
-
配置 Docker 连接
- 进入
File→Settings→Build, Execution, Deployment→Docker - 点击
+添加 Docker 连接 - 选择
Docker for Windows或Docker for Mac
- 进入
-
启动开发容器
# 在项目根目录运行 cd .devcontainer docker-compose -f docker-compose.webstorm.yml up -d -
在 WebStorm 中连接到容器
- 进入
File→Settings→Build, Execution, Deployment→Docker - 右键点击运行的容器,选择
Create...→Node.js Remote Interpreter - 配置远程 Node.js 解释器
- 进入
-
配置项目 SDK
- 进入
File→Settings→Languages & Frameworks→Node.js and NPM - 选择容器中的 Node.js 解释器
- 设置 package.json 为项目配置文件
- 进入
VS Code 使用(原有方式)
- 确保已安装 Dev Containers 扩展
- 在 VS Code 中打开此项目
- 按
F1或Ctrl+Shift+P打开命令面板 - 选择 "Dev Containers: Reopen in Container"
本地构建 Android APK
容器启动后,你可以使用以下命令进行本地构建:
# 安装依赖
npm install
# 预览版本构建
npm run build:android:preview
# 或者直接使用 EAS CLI
eas build --platform android --profile preview --local
开发服务器
# 启动 Expo 开发服务器
npm start
# Android 运行
npm run android
WebStorm 特殊配置
远程调试配置
-
配置运行/调试配置
- 进入
Run→Edit Configurations... - 点击
+添加Node.js配置 - 设置 JavaScript file 为
node_modules/.bin/expo - 设置 Application parameters 为
start - 选择容器中的 Node.js 解释器
- 进入
-
端口映射
- 确保 Docker 容器端口已正确映射
- 8081: Metro Bundler
- 19000-19002: Expo Dev Server
文件同步
WebStorm 会自动同步文件到容器,如遇到同步问题:
- 检查 Docker 挂载点配置
- 确保文件权限正确
- 重启 Docker 服务
端口映射
8081: Metro Bundler19000: Expo Dev Server19001: Expo Dev Server (HTTPS)19002: Expo Dev Server (Alternate)
环境变量
容器已配置以下环境变量:
ANDROID_HOME=/opt/android-sdkJAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64GRADLE_USER_HOME=/root/.gradleEXPO_NO_DOTENV=1EXPO_DEBUG=1
数据持久化
以下目录已挂载为 Docker 卷,确保数据持久化:
/root/.gradle: Gradle 缓存/root/.android: Android SDK 配置
故障排除
构建失败
- 检查 EAS 配置文件
eas.json - 确保已正确设置 Android SDK 路径
- 验证 Java 版本是否为 17
权限问题
如果遇到权限问题,可能需要:
sudo chown -R node:node /workspace
清理缓存
# 清理 Expo 缓存
expo r -c
# 清理 EAS 缓存
eas build:clean
注意事项
- 首次构建可能需要较长时间下载依赖
- 建议使用 VPN 访问 Google 服务以加快 Android SDK 下载
- 容器需要 privileged 模式以支持 Android 模拟器(如需要)