Spaces:
Running
Running
File size: 2,443 Bytes
7d78419 5c3ba51 f154923 7d78419 2e3b47f f154923 7d78419 f154923 5c3ba51 f154923 5c3ba51 f154923 5c3ba51 f154923 5c3ba51 f154923 8e095ab f154923 8e095ab f154923 2e3b47f 7d78419 2e3b47f f154923 7d78419 f154923 5c3ba51 7d78419 5c3ba51 f154923 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 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
# Merged PATH for Flutter, Dart, and Android Tools
ENV PATH="/opt/flutter/bin:/opt/flutter/bin/cache/dart-sdk/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:${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 \
&& 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
# Note: Using version 11076708 (adjust if a newer version is required)
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
# Accepts all licenses and installs basic platform tools
RUN yes | sdkmanager --licenses && \
sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
# 8. 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
# 9. 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
# 10. Final Setup
COPY --chown=user requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt || echo "No requirements.txt found, skipping..."
EXPOSE 7860
CMD ["code-server", "--bind-addr", "0.0.0.0:7860", "--auth", "none", "."]
|