FROM openjdk:11 as builder ENV MAVEN_VERSION=3.9.5 \ GRADLE_VERSION=7.5 ARG FLUTTER_VERSION="3.13.5" RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list RUN sed -i s@/security.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list RUN apt-get update && apt-get install -y \ curl zip wget \ && rm -rf /var/lib/apt/lists/* # install java16 RUN curl -s "https://get.sdkman.io" | bash RUN bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && sdk install java 21.0.1-ms" ENV JAVA_HOME /root/.sdkman/candidates/java/21.0.1-ms # install gradle RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip -P /tmp RUN unzip -d /opt/gradle /tmp/gradle-*.zip && rm -rf /tmp/gradle-*.zip ENV GRADLE_HOME=/opt/gradle/gradle-${GRADLE_VERSION} ENV PATH=$PATH:$GRADLE_HOME/bin # install maven RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip -P /tmp RUN unzip -d /opt/maven /tmp/apache-maven-*.zip ENV MAVEN_HOME=/opt/maven/apache-maven-${MAVEN_VERSION} ENV PATH=$PATH:$MAVEN_HOME/bin # install android sdk ENV ANDROID_HOME=/opt/androidsdk \ FLUTTER_HOME=/opt/flutter RUN wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip \ && mkdir -p $ANDROID_HOME/cmdline-tools/latest \ && unzip commandlinetools-linux-*.zip -d $ANDROID_HOME \ && rm -f commandlinetools-linux-*.zip \ && mv $ANDROID_HOME/cmdline-tools/bin $ANDROID_HOME/cmdline-tools/latest \ && mv $ANDROID_HOME/cmdline-tools/lib $ANDROID_HOME/cmdline-tools/latest RUN echo "export ANDROID_HOME=$ANDROID_HOME" >> ~/.bashrc \ && echo 'export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/cmdline-tools/bin:$ANDROID_HOME/platform-tools:$PATH' >> ~/.bashrc ENV PATH=$PATH:$FLUTTER_HOME/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/emulator RUN yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --verbose "platform-tools" "platforms;android-33" ENV PUB_HOSTED_URL=https://pub.flutter-io.cn ENV FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn # install flutter RUN git clone --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git ${FLUTTER_HOME} \ && cd ${FLUTTER_HOME} \ && ./bin/flutter precache \ && ./bin/flutter doctor # install python3.10 RUN mkdir -p ~/.pip RUN echo '\n\ [global] \n\ trusted-host=mirrors.aliyun.com \n\ index-url=https://mirrors.aliyun.com/pypi/simple/ \n\ ' > ~/.pip/pip.conf # RUN apt-get update && apt-get install -y \ # software-properties-common # RUN add-apt-repository -y ppa:deadsnakes/ppa # RUN apt-get update && \ # apt-get install -y python3.10 python3.10-distutils RUN apt update && apt install -y python3-distutils RUN curl http://fileshare.yoqi.me/d/DevFiles/Develop/Python/get-pip.py?sign=17C5fjx9l5VpBJ6FCHonje5nEEkylSINsPlKsASVkRc=:1702263152 -o get-pip.py && \ python3 get-pip.py && \ rm get-pip.py RUN ln -s /usr/bin/python3.9 /usr/bin/python && \ ln -s /usr/bin/pip3 /usr/bin/pip RUN rm -rf /var/lib/apt/lists/* # install go1.21 RUN wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz && \ tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz ENV PATH=$PATH:/usr/local/go/bin RUN export GOPROXY="https://goproxy.io,direct" # install nodejs20 RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - RUN apt-get install -y nodejs RUN npm config set registry http://registry.npm.taobao.org --global RUN npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/ --global RUN npm config set ELECTRON_BUILDER_BINARIES_MIRROR https://npmmirror.com/mirrors/electron-builder-binaries/ --global RUN npm install -g yarn pnpm LABEL email="liuyuqi" WORKDIR /workspaces # RUN mvn package RUN apt-get install -y wget unzip openssh-server # 指定字符集支持命令行输入中文(根据需要选择字符集) ENV LANG C.UTF-8 ENV LANGUAGE C.UTF-8 # set path RUN echo '\n\ export PATH=$PATH:$GRADLE_HOME/bin \n\ export JAVA_HOME=/usr/local/openjdk-11 \n\ export PATH=$PATH:$JAVA_HOME/bin \n\ export PATH=$PATH:$MAVEN_HOME/bin \n\ export PATH=$PATH:/usr/local/go/bin \n\ export GOPROXY="https://goproxy.io,direct" \n\ ' >> ~/.bashrc # install vscode and extension RUN curl -fsSL https://code-server.dev/install.sh | sh &&\ code-server --install-extension redhat.vscode-yaml &&\ code-server --install-extension orta.vscode-jest &&\ code-server --install-extension dbaeumer.vscode-eslint &&\ code-server --install-extension ms-python.python &&\ code-server --install-extension ms-azuretools.vscode-docker &&\ code-server --install-extension mhutchie.git-graph &&\ code-server --install-extension ardisaurus.gitflow-actions-sidebar &&\ code-server --install-extension Dart-Code.flutter &&\ code-server --install-extension golang.go &&\ code-server --install-extension Vue.volar &&\ code-server --install-extension eamodio.gitlens &&\ echo done VOLUME [ "/workspaces" ] CMD [ "/bin/bash" ]