Download Dockerfile from asons/vs2: direct link, hf CLI and curl.
- Browser
- Download file 5.99 kB
-
https://huggingface.co/spaces/asons/vs2/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/asons/vs2/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/asons/vs2/resolve/main/Dockerfile
5.99 kB
| # =============================== | |
| # Base: Ubuntu + code-server + Flutter + Android SDK + Chrome + Kotlin + Gradle | |
| # =============================== | |
| FROM ubuntu:22.04 | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV ANDROID_SDK_ROOT=/home/coder/android-sdk | |
| ENV FLUTTER_HOME=/home/coder/flutter | |
| ENV NVM_DIR=/usr/local/nvm | |
| ENV NODE_VERSION=22 | |
| ENV GRADLE_HOME=/opt/gradle | |
| ENV KOTLIN_HOME=/opt/kotlin | |
| ENV PATH=$FLUTTER_HOME/bin:$FLUTTER_HOME/bin/cache/dart-sdk/bin:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/emulator:$GRADLE_HOME/bin:$KOTLIN_HOME/bin:$NVM_DIR/versions/node/v$NODE_VERSION/bin:/usr/local/go/bin:$PATH | |
| # ------------------------------- | |
| # Create coder user (passwordless sudo) | |
| # ------------------------------- | |
| RUN apt-get update && apt-get install -y sudo \ | |
| && useradd -m -s /bin/bash coder \ | |
| && echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers | |
| USER root | |
| WORKDIR /home/coder | |
| # ------------------------------- | |
| # System Dependencies | |
| # ------------------------------- | |
| RUN apt-get update && apt-get install -y \ | |
| curl wget git unzip zip gnupg ca-certificates software-properties-common build-essential \ | |
| python3 python3-pip python3-venv \ | |
| php php-cli php-mbstring php-xml php-curl php-zip php-gd php-bcmath php-intl php-json \ | |
| redis-tools openjdk-17-jdk \ | |
| libglu1-mesa libpulse0 libxi6 libxrender1 libxrandr2 libxcomposite1 libxcursor1 libxdamage1 \ | |
| clang cmake ninja-build pkg-config \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ------------------------------- | |
| # Install Google Chrome | |
| # ------------------------------- | |
| RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \ | |
| && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list' \ | |
| && apt-get update && apt-get install -y google-chrome-stable \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ------------------------------- | |
| # Install Composer | |
| # ------------------------------- | |
| RUN curl -sS https://getcomposer.org/installer -o composer-setup.php \ | |
| && php composer-setup.php --install-dir=/usr/local/bin --filename=composer \ | |
| && rm composer-setup.php | |
| # ------------------------------- | |
| # Install Go | |
| # ------------------------------- | |
| ENV GO_VERSION=1.23.2 | |
| RUN curl -LO https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz \ | |
| && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz \ | |
| && rm go${GO_VERSION}.linux-amd64.tar.gz | |
| # ------------------------------- | |
| # Install NVM + Node + Yarn + pnpm | |
| # ------------------------------- | |
| RUN mkdir -p $NVM_DIR \ | |
| && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash \ | |
| && . $NVM_DIR/nvm.sh \ | |
| && nvm install $NODE_VERSION \ | |
| && nvm use $NODE_VERSION \ | |
| && npm install -g yarn pnpm \ | |
| && ln -s $NVM_DIR/versions/node/v$NODE_VERSION/bin/node /usr/local/bin/node \ | |
| && ln -s $NVM_DIR/versions/node/v$NODE_VERSION/bin/npm /usr/local/bin/npm \ | |
| && ln -s $NVM_DIR/versions/node/v$NODE_VERSION/bin/yarn /usr/local/bin/yarn \ | |
| && ln -s $NVM_DIR/versions/node/v$NODE_VERSION/bin/pnpm /usr/local/bin/pnpm | |
| # ------------------------------- | |
| # Install ngrok | |
| # ------------------------------- | |
| RUN curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \ | |
| && echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | tee /etc/apt/sources.list.d/ngrok.list \ | |
| && apt-get update && apt-get install -y ngrok \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ------------------------------- | |
| # Install code-server | |
| # ------------------------------- | |
| RUN curl -fsSL https://code-server.dev/install.sh | sh | |
| # ------------------------------- | |
| # Install Android SDK Command-line Tools | |
| # ------------------------------- | |
| RUN mkdir -p $ANDROID_SDK_ROOT/cmdline-tools \ | |
| && curl -o sdk-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip \ | |
| && unzip sdk-tools.zip -d $ANDROID_SDK_ROOT/cmdline-tools \ | |
| && rm sdk-tools.zip \ | |
| && mv $ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools $ANDROID_SDK_ROOT/cmdline-tools/latest | |
| # ------------------------------- | |
| # Install Android SDK Packages | |
| # ------------------------------- | |
| RUN yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses \ | |
| && $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0" "emulator" \ | |
| && $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --update | |
| # ------------------------------- | |
| # Install Gradle | |
| # ------------------------------- | |
| RUN wget https://services.gradle.org/distributions/gradle-8.13-bin.zip -O /tmp/gradle.zip \ | |
| && unzip /tmp/gradle.zip -d /opt \ | |
| && mv /opt/gradle-8.13 /opt/gradle \ | |
| && rm /tmp/gradle.zip | |
| # ------------------------------- | |
| # Install Kotlin | |
| # ------------------------------- | |
| RUN wget https://github.com/JetBrains/kotlin/releases/download/v2.0.21/kotlin-compiler-2.0.21.zip -O /tmp/kotlin.zip \ | |
| && unzip /tmp/kotlin.zip -d /opt \ | |
| && mv /opt/kotlinc /opt/kotlin \ | |
| && rm /tmp/kotlin.zip | |
| # ------------------------------- | |
| # Install Flutter | |
| # ------------------------------- | |
| USER coder | |
| RUN git clone https://github.com/flutter/flutter.git -b stable $FLUTTER_HOME \ | |
| && $FLUTTER_HOME/bin/flutter config --android-sdk $ANDROID_SDK_ROOT \ | |
| && $FLUTTER_HOME/bin/flutter precache \ | |
| && $FLUTTER_HOME/bin/flutter doctor -v | |
| # ------------------------------- | |
| # Setup workspace | |
| # ------------------------------- | |
| USER root | |
| RUN mkdir -p /home/coder/workspace /home/coder/.config /home/coder/.local/share/code-server \ | |
| && chown -R coder:coder /home/coder \ | |
| && chmod -R 755 /home/coder | |
| USER coder | |
| WORKDIR /home/coder/workspace | |
| EXPOSE 7860 | |
| # ------------------------------- | |
| # Start code-server | |
| # ------------------------------- | |
| CMD ["bash", "-c", "code-server --bind-addr 0.0.0.0:7860 --auth password --user-data-dir /home/coder/.local/share/code-server"] |