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", "."]