Dockerfile-Allinone-flutter 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. FROM openjdk:11 as builder
  2. ENV MAVEN_VERSION=3.9.5 \
  3. GRADLE_VERSION=7.5
  4. ARG FLUTTER_VERSION="3.13.5"
  5. # apt change to aliyun
  6. RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
  7. RUN sed -i s@/security.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
  8. RUN apt-get update && apt-get install -y \
  9. curl zip unzip wget git vim
  10. RUN apt install build-essential -y
  11. # install java 21.0.1-ms
  12. RUN curl -s "https://get.sdkman.io" | bash
  13. RUN bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && sdk install java 21.0.1-ms"
  14. ENV JAVA_HOME /root/.sdkman/candidates/java/21.0.1-ms
  15. # install gradle
  16. RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip -P /tmp
  17. RUN unzip -d /opt/gradle /tmp/gradle-*.zip && rm -rf /tmp/gradle-*.zip
  18. ENV GRADLE_HOME=/opt/gradle/gradle-${GRADLE_VERSION}
  19. ENV PATH=$PATH:$GRADLE_HOME/bin
  20. # install maven
  21. RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip -P /tmp
  22. RUN unzip -d /opt/maven /tmp/apache-maven-*.zip
  23. ENV MAVEN_HOME=/opt/maven/apache-maven-${MAVEN_VERSION}
  24. ENV PATH=$PATH:$MAVEN_HOME/bin
  25. # install android sdk
  26. ENV ANDROID_HOME=/opt/androidsdk \
  27. FLUTTER_HOME=/opt/flutter
  28. RUN wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip \
  29. && mkdir -p $ANDROID_HOME/cmdline-tools/latest \
  30. && unzip commandlinetools-linux-*.zip -d $ANDROID_HOME \
  31. && rm -f commandlinetools-linux-*.zip \
  32. && mv $ANDROID_HOME/cmdline-tools/bin $ANDROID_HOME/cmdline-tools/latest \
  33. && mv $ANDROID_HOME/cmdline-tools/lib $ANDROID_HOME/cmdline-tools/latest
  34. RUN echo "export ANDROID_HOME=$ANDROID_HOME" >> ~/.bashrc \
  35. && echo 'export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/cmdline-tools/bin:$ANDROID_HOME/platform-tools:$PATH' >> ~/.bashrc
  36. 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
  37. RUN yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --verbose "platform-tools" "platforms;android-33"
  38. ENV PUB_HOSTED_URL=https://pub.flutter-io.cn
  39. ENV FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
  40. # install flutter
  41. RUN git clone --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git ${FLUTTER_HOME} \
  42. && cd ${FLUTTER_HOME} \
  43. && ./bin/flutter precache \
  44. && ./bin/flutter doctor
  45. # install python 3.12.1
  46. RUN mkdir -p ~/.pip
  47. RUN echo '\n\
  48. [global] \n\
  49. trusted-host=mirrors.aliyun.com \n\
  50. index-url=https://mirrors.aliyun.com/pypi/simple/ \n\
  51. ' > ~/.pip/pip.conf
  52. # RUN apt-get install -y software-properties-common
  53. # RUN add-apt-repository -y ppa:deadsnakes/ppa
  54. # RUN apt update
  55. # RUN apt-get install -y python3.12 python3.12-distutils
  56. # RUN apt install make
  57. RUN \
  58. apt-get update && \
  59. apt-get install -y python3 python3-dev python-dev python-pip python3-pip python-virtualenv && \
  60. rm -rf /var/lib/apt/lists/*
  61. # RUN wget http://npm.taobao.org/mirrors/python/3.12.1/Python-3.12.1.tgz
  62. # RUN tar -zxf Python-3.12.1.tgz && cd Python-3.12.1 && \
  63. # mkdir -p /opt/python/3.12.1 && \
  64. # ./configure --prefix=/opt/python/3.12.1 --enable-shared --with-ssl --enable-optimizations && \
  65. # make && make install && \
  66. # cd .. && rm -rf Python-3.12.1*
  67. # RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3
  68. # RUN curl http://fileshare.yoqi.me/d/DevFiles/Develop/Python/get-pip.py?sign=17C5fjx9l5VpBJ6FCHonje5nEEkylSINsPlKsASVkRc=:1702263152 -o get-pip.py && \
  69. # python3 get-pip.py && \
  70. # rm get-pip.py
  71. # RUN ln -s /usr/bin/python3.9 /usr/bin/python && \
  72. # ln -s /usr/bin/pip3 /usr/bin/pip
  73. # install R
  74. RUN apt-get update && apt-get install -y \
  75. r-base r-base-dev
  76. # install ruby
  77. RUN apt-get update && apt-get install -y \
  78. ruby-full rubygems ruby-dev
  79. # install rust
  80. RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
  81. # install .net core 6.0
  82. # RUN wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
  83. # dpkg -i packages-microsoft-prod.deb && \
  84. # rm packages-microsoft-prod.deb && \
  85. # apt-get update && \
  86. # apt-get install -y apt-transport-https && \
  87. # apt-get update && \
  88. # apt-get install -y dotnet-sdk-6.0
  89. # install go1.21
  90. RUN wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz && \
  91. tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz && \
  92. rm go1.21.4.linux-amd64.tar.gz
  93. ENV PATH=$PATH:/usr/local/go/bin
  94. RUN export GOPROXY="https://goproxy.io,direct"
  95. # install nodejs20
  96. RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
  97. RUN apt-get install -y nodejs
  98. RUN npm config set registry http://registry.npm.taobao.org --global
  99. # RUN npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/ --global
  100. # RUN npm config set ELECTRON_BUILDER_BINARIES_MIRROR https://npmmirror.com/mirrors/electron-builder-binaries/ --global
  101. RUN npm install -g yarn pnpm
  102. LABEL email="liuyuqi<liuyuqi.gov@msn.cn>"
  103. WORKDIR /workspaces
  104. RUN apt-get install -y openssh-server
  105. RUN rm -rf /var/lib/apt/lists/*
  106. # 指定字符集支持命令行输入中文(根据需要选择字符集)
  107. ENV LANG C.UTF-8
  108. ENV LANGUAGE C.UTF-8
  109. # set path
  110. RUN echo '\n\
  111. export PATH=$PATH:$GRADLE_HOME/bin \n\
  112. export JAVA_HOME=/usr/local/openjdk-11 \n\
  113. export PATH=$PATH:$JAVA_HOME/bin \n\
  114. export PATH=$PATH:$MAVEN_HOME/bin \n\
  115. export PATH=$PATH:/usr/local/go/bin \n\
  116. export GOPROXY="https://goproxy.io,direct" \n\
  117. ' >> ~/.bashrc
  118. # install vscode and extension
  119. RUN curl -fsSL https://code-server.dev/install.sh | sh &&\
  120. code-server --install-extension redhat.vscode-yaml &&\
  121. code-server --install-extension orta.vscode-jest &&\
  122. code-server --install-extension dbaeumer.vscode-eslint &&\
  123. code-server --install-extension ms-python.python &&\
  124. code-server --install-extension ms-python.vscode-pylance &&\
  125. code-server --install-extension ms-azuretools.vscode-docker &&\
  126. code-server --install-extension mhutchie.git-graph &&\
  127. code-server --install-extension ardisaurus.gitflow-actions-sidebar &&\
  128. code-server --install-extension Dart-Code.flutter &&\
  129. code-server --install-extension golang.go &&\
  130. code-server --install-extension Vue.volar &&\
  131. code-server --install-extension eamodio.gitlens &&\
  132. code-server --install-extension REditorSupport.r &&\
  133. code-server --install-extension vscjava.vscode-java-pack &&\
  134. code-server --install-extension vscjava.vscode-java-debug &&\
  135. code-server --install-extension vscjava.vscode-java-dependency &&\
  136. code-server --install-extension vscjava.vscode-maven &&\
  137. code-server --install-extension vscjava.vscode-spring-initializr &&\
  138. echo done
  139. # code-server --install-extension ms-dotnettools.csharp &&\
  140. VOLUME [ "/workspaces" ]
  141. CMD [ "/bin/bash" ]