Download Dockerfile from piyaka/IDE: direct link, hf CLI and curl.
- Browser
- Download file 2.78 kB
-
https://huggingface.co/spaces/piyaka/IDE/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/piyaka/IDE/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/piyaka/IDE/resolve/main/Dockerfile
2.78 kB
| FROM ubuntu:22.04 | |
| # 1. Environment Variables | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV PUB_CACHE=/home/user/.pub-cache | |
| ENV ANDROID_SDK_ROOT=/opt/android-sdk | |
| ENV PATH="/opt/flutter/bin:/opt/flutter/bin/cache/dart-sdk/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_SDK_ROOT}/emulator:${PATH}" | |
| # 2. Install System Dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| curl git unzip xz-utils zip libglu1-mesa python3 python3-pip wget openjdk-17-jdk sqlite3 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 3. Install code-server | |
| RUN curl -fsSL https://code-server.dev/install.sh | sh | |
| # 4. Install Flutter SDK | |
| RUN git clone https://github.com/flutter/flutter.git /opt/flutter | |
| # 5. Install Android SDK Command Line Tools | |
| RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \ | |
| wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O /tmp/tools.zip && \ | |
| unzip /tmp/tools.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools && \ | |
| mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/latest && \ | |
| rm /tmp/tools.zip | |
| # 6. Setup User and Permissions | |
| RUN useradd -m -u 1000 user && \ | |
| chown -R user:user /opt/flutter && \ | |
| chown -R user:user ${ANDROID_SDK_ROOT} | |
| USER user | |
| WORKDIR /home/user | |
| # 7. Configure Android SDK & Licenses | |
| RUN yes | sdkmanager --licenses && \ | |
| sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0" \ | |
| "emulator" "system-images;android-34;default;arm64-v8a" | |
| # 8. Create a default AVD (ARM image) | |
| RUN avdmanager create avd -n MyDeviceARM -k "system-images;android-34;default;arm64-v8a" --device "pixel" | |
| # 9. Activate Flutter and Extensions | |
| RUN flutter config --android-sdk ${ANDROID_SDK_ROOT} && \ | |
| flutter precache && \ | |
| flutter doctor && \ | |
| code-server --install-extension dart-code.flutter && \ | |
| code-server --install-extension dart-code.dart-code | |
| # 10. Optional: Pre-configure VS Code Settings | |
| RUN mkdir -p /home/user/.local/share/code-server/User && \ | |
| echo '{ \ | |
| "dart.flutterSdkPath": "/opt/flutter", \ | |
| "dart.sdkPath": "/opt/flutter/bin/cache/dart-sdk", \ | |
| "python.defaultInterpreterPath": "/usr/bin/python3" \ | |
| }' > /home/user/.local/share/code-server/User/settings.json | |
| # 11. Final Setup | |
| COPY --chown=user requirements.txt . | |
| RUN pip3 install --no-cache-dir -r requirements.txt || echo "No requirements.txt found, skipping..." | |
| # 12. Entrypoint Script | |
| COPY --chown=user entrypoint.sh /home/user/entrypoint.sh | |
| RUN chmod +x /home/user/entrypoint.sh | |
| EXPOSE 7860 | |
| ENTRYPOINT ["/home/user/entrypoint.sh"] | |
| # 13. Healthcheck: ensure emulator is alive | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=5 \ | |
| CMD adb devices | grep -q "emulator-5554" || exit 1 | |