Initial commit: expo-popcore project
This commit is contained in:
126
.devcontainer/Dockerfile
Normal file
126
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,126 @@
|
||||
# Ubuntu 20.04 from GitHub mirror
|
||||
FROM ubuntu:20.04
|
||||
|
||||
LABEL maintainer="vitor.roberto3022@gmail.com"
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Use Alibaba Cloud mirror for Ubuntu packages
|
||||
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
|
||||
sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
|
||||
|
||||
# Update the package list and install dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get install -y \
|
||||
curl \
|
||||
gnupg \
|
||||
wget \
|
||||
unzip \
|
||||
make \
|
||||
sudo \
|
||||
git \
|
||||
build-essential
|
||||
|
||||
# Add NodeSource APT repository for Node.js (keep for compatibility)
|
||||
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash -
|
||||
|
||||
# Install Node.js (include for some tools that still require it)
|
||||
RUN apt-get install -y nodejs
|
||||
|
||||
# Install Bun using official installation script
|
||||
RUN curl -fsSL https://bun.sh/install | bash
|
||||
|
||||
# Set Bun environment variables (official installation location)
|
||||
ENV BUN_INSTALL="/root/.bun"
|
||||
ENV PATH="$BUN_INSTALL/bin:$PATH"
|
||||
|
||||
# Install expo dependencies with Bun
|
||||
RUN bun install -g eas-cli
|
||||
RUN bun install -g sharp-cli
|
||||
|
||||
# Setup folder to store the expo apps
|
||||
RUN mkdir -p /home/expo_apps/
|
||||
|
||||
# Install android studio and java dependencies
|
||||
RUN dpkg --add-architecture i386
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libc6:i386 \
|
||||
libncurses5:i386 \
|
||||
libstdc++6:i386 \
|
||||
lib32z1 \
|
||||
libbz2-1.0:i386 \
|
||||
libxrender1 \
|
||||
libxtst6 \
|
||||
libxi6 \
|
||||
libfreetype6 \
|
||||
libxft2 \
|
||||
xz-utils \
|
||||
qemu \
|
||||
qemu-kvm \
|
||||
libvirt-daemon-system \
|
||||
libvirt-clients \
|
||||
bridge-utils \
|
||||
libnotify4 \
|
||||
libglu1-mesa \
|
||||
libqt5widgets5 \
|
||||
openjdk-17-jdk \
|
||||
xvfb
|
||||
|
||||
# Get Android SDK command line tools from official Google source
|
||||
RUN wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
|
||||
RUN unzip commandlinetools-linux-11076708_latest.zip
|
||||
RUN mkdir -p /android-sdk-linux/cmdline-tools
|
||||
RUN mv cmdline-tools /android-sdk-linux/cmdline-tools/latest
|
||||
|
||||
# Get NDK version 27.1.12297006 from official Google source
|
||||
RUN wget https://dl.google.com/android/repository/android-ndk-r27-linux.zip
|
||||
RUN unzip android-ndk-r27-linux.zip
|
||||
|
||||
# Set environment variables
|
||||
ENV ANDROID_HOME=/android-sdk-linux
|
||||
ENV ANDROID_SDK_ROOT=/android-sdk-linux
|
||||
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
ENV ANDROID_NDK_HOME=/android-ndk-r27
|
||||
ENV PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools
|
||||
|
||||
# Accept Android SDK licenses
|
||||
RUN yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
|
||||
|
||||
# Install required Android SDK components for minSDK 24, targetSDK 36
|
||||
RUN $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager \
|
||||
"platform-tools" \
|
||||
"platforms;android-36" \
|
||||
"platforms;android-24" \
|
||||
"build-tools;36.0.0" \
|
||||
"build-tools;24.0.3"
|
||||
|
||||
# Create workspace directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# Configure Gradle for better performance
|
||||
RUN mkdir -p ~/.gradle
|
||||
RUN echo 'org.gradle.daemon=true' >> ~/.gradle/gradle.properties
|
||||
RUN echo 'org.gradle.parallel=true' >> ~/.gradle/gradle.properties
|
||||
RUN echo 'org.gradle.configureondemand=true' >> ~/.gradle/gradle.properties
|
||||
|
||||
# Set environment variables for root user
|
||||
ENV ANDROID_HOME=/android-sdk-linux
|
||||
ENV ANDROID_SDK_ROOT=/android-sdk-linux
|
||||
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
ENV ANDROID_NDK_HOME=/android-ndk-r27
|
||||
ENV BUN_INSTALL="/root/.bun"
|
||||
ENV PATH="$BUN_INSTALL/bin:$JAVA_HOME/bin:$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools"
|
||||
|
||||
# Verify installations
|
||||
RUN java -version
|
||||
RUN node --version
|
||||
RUN npm --version
|
||||
RUN bun --version
|
||||
RUN eas --version
|
||||
RUN $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --list
|
||||
|
||||
# Expose default ports
|
||||
EXPOSE 8081 19000 19001 19002
|
||||
|
||||
# Default command
|
||||
CMD ["sleep", "infinity"]
|
||||
156
.devcontainer/README.md
Normal file
156
.devcontainer/README.md
Normal file
@@ -0,0 +1,156 @@
|
||||
# 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 使用
|
||||
|
||||
1. **安装 Docker 插件**
|
||||
- 打开 WebStorm
|
||||
- 进入 `File` → `Settings` → `Plugins`
|
||||
- 搜索并安装 `Docker` 插件
|
||||
|
||||
2. **配置 Docker 连接**
|
||||
- 进入 `File` → `Settings` → `Build, Execution, Deployment` → `Docker`
|
||||
- 点击 `+` 添加 Docker 连接
|
||||
- 选择 `Docker for Windows` 或 `Docker for Mac`
|
||||
|
||||
3. **启动开发容器**
|
||||
```bash
|
||||
# 在项目根目录运行
|
||||
cd .devcontainer
|
||||
docker-compose -f docker-compose.webstorm.yml up -d
|
||||
```
|
||||
|
||||
4. **在 WebStorm 中连接到容器**
|
||||
- 进入 `File` → `Settings` → `Build, Execution, Deployment` → `Docker`
|
||||
- 右键点击运行的容器,选择 `Create...` → `Node.js Remote Interpreter`
|
||||
- 配置远程 Node.js 解释器
|
||||
|
||||
5. **配置项目 SDK**
|
||||
- 进入 `File` → `Settings` → `Languages & Frameworks` → `Node.js and NPM`
|
||||
- 选择容器中的 Node.js 解释器
|
||||
- 设置 package.json 为项目配置文件
|
||||
|
||||
### VS Code 使用(原有方式)
|
||||
|
||||
1. 确保已安装 [Dev Containers 扩展](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
|
||||
2. 在 VS Code 中打开此项目
|
||||
3. 按 `F1` 或 `Ctrl+Shift+P` 打开命令面板
|
||||
4. 选择 "Dev Containers: Reopen in Container"
|
||||
|
||||
### 本地构建 Android APK
|
||||
|
||||
容器启动后,你可以使用以下命令进行本地构建:
|
||||
|
||||
```bash
|
||||
# 安装依赖
|
||||
npm install
|
||||
|
||||
# 预览版本构建
|
||||
npm run build:android:preview
|
||||
|
||||
# 或者直接使用 EAS CLI
|
||||
eas build --platform android --profile preview --local
|
||||
```
|
||||
|
||||
### 开发服务器
|
||||
|
||||
```bash
|
||||
# 启动 Expo 开发服务器
|
||||
npm start
|
||||
|
||||
# Android 运行
|
||||
npm run android
|
||||
```
|
||||
|
||||
## WebStorm 特殊配置
|
||||
|
||||
### 远程调试配置
|
||||
|
||||
1. **配置运行/调试配置**
|
||||
- 进入 `Run` → `Edit Configurations...`
|
||||
- 点击 `+` 添加 `Node.js` 配置
|
||||
- 设置 JavaScript file 为 `node_modules/.bin/expo`
|
||||
- 设置 Application parameters 为 `start`
|
||||
- 选择容器中的 Node.js 解释器
|
||||
|
||||
2. **端口映射**
|
||||
- 确保 Docker 容器端口已正确映射
|
||||
- 8081: Metro Bundler
|
||||
- 19000-19002: Expo Dev Server
|
||||
|
||||
### 文件同步
|
||||
|
||||
WebStorm 会自动同步文件到容器,如遇到同步问题:
|
||||
|
||||
1. 检查 Docker 挂载点配置
|
||||
2. 确保文件权限正确
|
||||
3. 重启 Docker 服务
|
||||
|
||||
## 端口映射
|
||||
|
||||
- `8081`: Metro Bundler
|
||||
- `19000`: Expo Dev Server
|
||||
- `19001`: Expo Dev Server (HTTPS)
|
||||
- `19002`: Expo Dev Server (Alternate)
|
||||
|
||||
## 环境变量
|
||||
|
||||
容器已配置以下环境变量:
|
||||
|
||||
- `ANDROID_HOME=/opt/android-sdk`
|
||||
- `JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64`
|
||||
- `GRADLE_USER_HOME=/root/.gradle`
|
||||
- `EXPO_NO_DOTENV=1`
|
||||
- `EXPO_DEBUG=1`
|
||||
|
||||
## 数据持久化
|
||||
|
||||
以下目录已挂载为 Docker 卷,确保数据持久化:
|
||||
|
||||
- `/root/.gradle`: Gradle 缓存
|
||||
- `/root/.android`: Android SDK 配置
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 构建失败
|
||||
|
||||
1. 检查 EAS 配置文件 `eas.json`
|
||||
2. 确保已正确设置 Android SDK 路径
|
||||
3. 验证 Java 版本是否为 17
|
||||
|
||||
### 权限问题
|
||||
|
||||
如果遇到权限问题,可能需要:
|
||||
|
||||
```bash
|
||||
sudo chown -R node:node /workspace
|
||||
```
|
||||
|
||||
### 清理缓存
|
||||
|
||||
```bash
|
||||
# 清理 Expo 缓存
|
||||
expo r -c
|
||||
|
||||
# 清理 EAS 缓存
|
||||
eas build:clean
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 首次构建可能需要较长时间下载依赖
|
||||
- 建议使用 VPN 访问 Google 服务以加快 Android SDK 下载
|
||||
- 容器需要 privileged 模式以支持 Android 模拟器(如需要)
|
||||
76
.devcontainer/devcontainer.json
Normal file
76
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"name": "Expo EAS Android Build",
|
||||
"dockerComposeFile": "docker-compose.yml",
|
||||
"service": "expo-android",
|
||||
"workspaceFolder": "/workspace",
|
||||
"shutdownAction": "stopCompose",
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
|
||||
"ghcr.io/devcontainers/features/git:1": {}
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"ms-vscode.vscode-typescript-next",
|
||||
"expo.vscode-expo-tools",
|
||||
"ms-vscode.vscode-json",
|
||||
"esbenp.prettier-vscode",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"ms-vscode.vscode-eslint"
|
||||
],
|
||||
"settings": {
|
||||
"typescript.preferences.importModuleSpecifier": "relative",
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"eslint.workingDirectories": ["."],
|
||||
"files.exclude": {
|
||||
"**/node_modules": true,
|
||||
"**/.git": true,
|
||||
"**/.DS_Store": true,
|
||||
"**/Thumbs.db": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"jetbrains": {
|
||||
"ide": "WebStorm",
|
||||
"plugins": [
|
||||
"NodeJS",
|
||||
"TypeScript",
|
||||
"JavaScript",
|
||||
"Docker",
|
||||
"Git"
|
||||
],
|
||||
"settings": {
|
||||
"nodejs.package_manager": "npm",
|
||||
"typescript.compiler.module": "commonjs",
|
||||
"editor.format.on.save": true,
|
||||
"editor.code.inspection.on.the.fly": true,
|
||||
"javascript.nodejs.core.library.use.typings": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"forwardPorts": [8081, 19000, 19001, 19002],
|
||||
"portsAttributes": {
|
||||
"8081": {
|
||||
"label": "Metro Bundler",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"19000": {
|
||||
"label": "Expo Dev Server",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"19001": {
|
||||
"label": "Expo Dev Server (HTTPS)",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"19002": {
|
||||
"label": "Expo Dev Server (Alternate)",
|
||||
"onAutoForward": "notify"
|
||||
}
|
||||
},
|
||||
"postCreateCommand": "npm install",
|
||||
"remoteUser": "root",
|
||||
"mounts": [
|
||||
"source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind"
|
||||
]
|
||||
}
|
||||
55
.devcontainer/docker-compose.webstorm.yml
Normal file
55
.devcontainer/docker-compose.webstorm.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
expo-android:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: expo-eas-android-webstorm
|
||||
volumes:
|
||||
- ../../../:/workspace
|
||||
- android_gradle:/root/.gradle
|
||||
- android_sdk:/root/.android
|
||||
# Additional volumes for WebStorm
|
||||
- webstorm_config:/root/.config/JetBrains
|
||||
- webstorm_system:/root/.local/share/JetBrains
|
||||
ports:
|
||||
- "8081:8081" # Metro bundler
|
||||
- "19000:19000" # Expo dev server
|
||||
- "19001:19001" # Expo dev server HTTPS
|
||||
- "19002:19002" # Expo dev server alternate
|
||||
environment:
|
||||
- NODE_ENV=development
|
||||
- ANDROID_HOME=/opt/android-sdk
|
||||
- JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
- GRADLE_USER_HOME=/root/.gradle
|
||||
- EXPO_NO_DOTENV=1
|
||||
- EXPO_DEBUG=1
|
||||
# WebStorm specific environment variables
|
||||
- DISPLAY=${DISPLAY:-:0}
|
||||
- XDG_RUNTIME_DIR=/tmp/runtime-root
|
||||
working_dir: /workspace
|
||||
command: sleep infinity
|
||||
privileged: true # Required for Android emulator if needed
|
||||
devices:
|
||||
- /dev/kvm # For Android emulator acceleration
|
||||
# Network configuration for better IDE connectivity
|
||||
networks:
|
||||
- expo-network
|
||||
# Health check for IDE connectivity
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8081"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
volumes:
|
||||
android_gradle:
|
||||
android_sdk:
|
||||
webstorm_config:
|
||||
webstorm_system:
|
||||
|
||||
networks:
|
||||
expo-network:
|
||||
driver: bridge
|
||||
33
.devcontainer/docker-compose.yml
Normal file
33
.devcontainer/docker-compose.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
expo-android:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: expo-eas-android
|
||||
volumes:
|
||||
- ../../../:/workspace
|
||||
- android_gradle:/root/.gradle
|
||||
- android_sdk:/root/.android
|
||||
ports:
|
||||
- "8081:8081" # Metro bundler
|
||||
- "19000:19000" # Expo dev server
|
||||
- "19001:19001" # Expo dev server HTTPS
|
||||
- "19002:19002" # Expo dev server alternate
|
||||
environment:
|
||||
- NODE_ENV=development
|
||||
- ANDROID_HOME=/android-sdk-linux
|
||||
- JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
- GRADLE_USER_HOME=/root/.gradle
|
||||
- EXPO_NO_DOTENV=1
|
||||
- EXPO_DEBUG=1
|
||||
working_dir: /workspace
|
||||
command: sleep infinity
|
||||
privileged: true # Required for Android emulator if needed
|
||||
devices:
|
||||
- /dev/kvm # For Android emulator acceleration
|
||||
|
||||
volumes:
|
||||
android_gradle:
|
||||
android_sdk:
|
||||
149
.devcontainer/webstorm-setup.md
Normal file
149
.devcontainer/webstorm-setup.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# WebStorm Docker 开发环境设置指南
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 启动容器
|
||||
|
||||
```bash
|
||||
# 进入项目目录
|
||||
cd C:\Users\bwkj\WebstormProjects\loomart\apps\expo
|
||||
|
||||
# 启动 WebStorm 专用容器
|
||||
docker-compose -f .devcontainer/docker-compose.webstorm.yml up -d
|
||||
```
|
||||
|
||||
### 2. 在 WebStorm 中配置
|
||||
|
||||
#### 步骤 1: 配置 Docker 连接
|
||||
1. 打开 WebStorm
|
||||
2. `File` → `Settings` → `Build, Execution, Deployment` → `Docker`
|
||||
3. 点击 `+` 添加新的 Docker 配置
|
||||
4. 选择 `Docker for Windows`
|
||||
5. 点击 `Test Connection` 确认连接成功
|
||||
|
||||
#### 步骤 2: 配置远程 Node.js 解释器
|
||||
1. 在 Docker 设置中,找到运行的 `expo-eas-android-webstorm` 容器
|
||||
2. 右键点击容器 → `Create...` → `Node.js Remote Interpreter`
|
||||
3. 等待 IDE 配置完成
|
||||
|
||||
#### 步骤 3: 设置项目 SDK
|
||||
1. `File` → `Settings` → `Languages & Frameworks` → `Node.js and NPM`
|
||||
2. 选择刚创建的远程 Node.js 解释器
|
||||
3. 点击 `Add...` 选择 `package.json` 作为项目配置
|
||||
|
||||
#### 步骤 4: 配置运行/调试
|
||||
1. `Run` → `Edit Configurations...`
|
||||
2. 点击 `+` → `Node.js`
|
||||
3. 配置如下:
|
||||
- **Name**: `Expo Start`
|
||||
- **Node interpreter**: 选择容器中的解释器
|
||||
- **JavaScript file**: `node_modules/.bin/expo`
|
||||
- **Application parameters**: `start`
|
||||
- **Working directory**: `/workspace`
|
||||
|
||||
### 3. 开始开发
|
||||
|
||||
#### 启动开发服务器
|
||||
1. 选择刚创建的 `Expo Start` 运行配置
|
||||
2. 点击绿色运行按钮或按 `Shift+F10`
|
||||
3. 等待 Metro bundler 启动
|
||||
|
||||
#### 本地构建 APK
|
||||
```bash
|
||||
# 在 WebStorm 终端中运行(确保使用容器终端)
|
||||
eas build --platform android --profile preview --local
|
||||
```
|
||||
|
||||
## 常见问题解决
|
||||
|
||||
### 问题 1: 无法连接到 Docker 容器
|
||||
**解决方案:**
|
||||
1. 确保 Docker Desktop 正在运行
|
||||
2. 检查防火墙设置
|
||||
3. 重启 Docker Desktop
|
||||
|
||||
### 问题 2: Node.js 解释器无法识别
|
||||
**解决方案:**
|
||||
1. 确保容器正在运行
|
||||
2. 检查容器中 Node.js 是否正确安装
|
||||
3. 重新创建远程解释器配置
|
||||
|
||||
### 问题 3: 文件同步延迟
|
||||
**解决方案:**
|
||||
1. 检查 Docker 挂载点配置
|
||||
2. 确保项目文件权限正确
|
||||
3. 尝试重启容器
|
||||
|
||||
### 问题 4: 端口冲突
|
||||
**解决方案:**
|
||||
1. 检查端口是否被其他程序占用
|
||||
2. 修改 `docker-compose.webstorm.yml` 中的端口映射
|
||||
3. 重启容器
|
||||
|
||||
## 高级配置
|
||||
|
||||
### 自定义环境变量
|
||||
在 `docker-compose.webstorm.yml` 中添加自定义环境变量:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
- MY_CUSTOM_VAR=value
|
||||
- ANOTHER_VAR=another_value
|
||||
```
|
||||
|
||||
### 添加额外的端口映射
|
||||
```yaml
|
||||
ports:
|
||||
- "8081:8081"
|
||||
- "19000:19000"
|
||||
- "3000:3000" # 添加自定义端口
|
||||
```
|
||||
|
||||
### 挂载额外的目录
|
||||
```yaml
|
||||
volumes:
|
||||
- ..:/workspace:cached
|
||||
- D:/my-projects:/external-projects # 添加外部目录
|
||||
```
|
||||
|
||||
## 性能优化
|
||||
|
||||
### 1. 使用 Docker Desktop 的资源限制
|
||||
- 分配足够的内存(建议 8GB+)
|
||||
- 设置合理的 CPU 核心数
|
||||
|
||||
### 2. 优化文件同步
|
||||
- 使用 `.dockerignore` 排除不必要的文件
|
||||
- 考虑使用 Docker volumes 进行缓存
|
||||
|
||||
### 3. 网络优化
|
||||
- 使用 bridge 网络模式
|
||||
- 配置合适的 DNS 设置
|
||||
|
||||
## 调试技巧
|
||||
|
||||
### 1. 查看容器日志
|
||||
```bash
|
||||
docker-compose -f .devcontainer/docker-compose.webstorm.yml logs -f
|
||||
```
|
||||
|
||||
### 2. 进入容器调试
|
||||
```bash
|
||||
docker exec -it expo-eas-android-webstorm bash
|
||||
```
|
||||
|
||||
### 3. 检查容器状态
|
||||
```bash
|
||||
docker-compose -f .devcontainer/docker-compose.webstorm.yml ps
|
||||
```
|
||||
|
||||
## 备份和恢复
|
||||
|
||||
### 备份配置
|
||||
- 保存 `.devcontainer` 目录
|
||||
- 导出 WebStorm 配置
|
||||
|
||||
### 恢复环境
|
||||
1. 克隆项目
|
||||
2. 运行 `docker-compose up -d`
|
||||
3. 重新配置 WebStorm 连接
|
||||
Reference in New Issue
Block a user