| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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/* |
|
|
| |
| |
| |
| 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/* |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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/* |
|
|
| |
| |
| |
| RUN curl -fsSL https://code-server.dev/install.sh | sh |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| CMD ["bash", "-c", "code-server --bind-addr 0.0.0.0:7860 --auth password --user-data-dir /home/coder/.local/share/code-server"] |