| FROM ubuntu:22.04 |
|
|
| |
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV ANDROID_SDK_ROOT=/opt/android-sdk |
| ENV FLUTTER_HOME=/opt/flutter |
| ENV PATH="${FLUTTER_HOME}/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:${PATH}" |
|
|
| |
| |
| RUN apt-get update && apt-get install -y \ |
| curl git unzip xz-utils zip libglu1-mesa wget openjdk-17-jdk \ |
| xfce4 xfce4-goodies tightvncserver novnc python3-websockify \ |
| libgtk-3-0 libcanberra-gtk-module libdbus-glib-1-2 libnss3 \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| RUN git clone https://github.com/flutter/flutter.git ${FLUTTER_HOME} |
| RUN chown -R root:root ${FLUTTER_HOME} && chmod -R 777 ${FLUTTER_HOME} |
|
|
| |
| 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 |
|
|
| |
| |
| RUN wget https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.2.1.25/android-studio-2023.2.1.25-linux.tar.gz -O /tmp/studio.tar.gz && \ |
| tar -xzf /tmp/studio.tar.gz -C /opt && \ |
| rm /tmp/studio.tar.gz |
|
|
| |
| RUN useradd -m -u 1000 user |
| USER user |
| WORKDIR /home/user |
|
|
| |
| RUN yes | sdkmanager --licenses && \ |
| sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0" |
|
|
| |
| RUN flutter config --android-sdk ${ANDROID_SDK_ROOT} && \ |
| flutter precache |
|
|
| |
| |
| RUN mkdir /home/user/.vnc && \ |
| echo "password" | vncpass -f > /home/user/.vnc/passwd && \ |
| chmod 600 /home/user/.vnc/passwd |
|
|
| |
| EXPOSE 6080 |
|
|
| |
| CMD vncserver :1 -geometry 1280x800 -depth 24 && \ |
| /usr/share/novnc/utils/launch.sh --vnc localhost:5901 --listen 6080 |
|
|