123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- 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 unzip wget git vim
- RUN apt install build-essential -y
- 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
- 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
- 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
- ENV ANDROID_HOME=/opt/androidsdk \
- FLUTTER_HOME=/opt/flutter
- RUN wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_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
- RUN git clone --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git ${FLUTTER_HOME} \
- && cd ${FLUTTER_HOME} \
- && ./bin/flutter precache \
- && ./bin/flutter doctor
- 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 install -y python3-pip
- RUN apt-get update && apt-get install -y \
- r-base r-base-dev
- RUN apt-get update && apt-get install -y \
- ruby-full rubygems ruby-dev
- RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- 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 && \
- rm go1.21.4.linux-amd64.tar.gz
- ENV PATH=$PATH:/usr/local/go/bin
- RUN export GOPROXY="https://goproxy.io,direct"
- 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 install -g yarn pnpm
- LABEL email="liuyuqi<liuyuqi.gov@msn.cn>"
- WORKDIR /workspaces
- RUN apt-get install -y openssh-server
- RUN rm -rf /var/lib/apt/lists/*
- ENV LANG C.UTF-8
- ENV LANGUAGE C.UTF-8
- 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
- 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-python.vscode-pylance &&\
- 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 &&\
- code-server --install-extension REditorSupport.r &&\
- code-server --install-extension vscjava.vscode-java-pack &&\
- code-server --install-extension vscjava.vscode-java-debug &&\
- code-server --install-extension vscjava.vscode-java-dependency &&\
- code-server --install-extension vscjava.vscode-maven &&\
- code-server --install-extension vscjava.vscode-spring-initializr &&\
- echo done
- VOLUME [ "/workspaces" ]
- CMD [ "/bin/bash" ]
|