Dockerfile-Allinone-flutter 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. FROM openjdk:16 as builder
  2. ENV MAVEN_VERSION=3.9.5 \
  3. GRADLE_VERSION=7.5
  4. ARG FLUTTER_VERSION="3.13.5"
  5. RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
  6. RUN sed -i s@/security.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
  7. RUN apt-get update
  8. # install gradle
  9. RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip -P /tmp
  10. RUN unzip -d /opt/gradle /tmp/gradle-*.zip && rm -rf /tmp/gradle-*.zip
  11. ENV GRADLE_HOME=/opt/gradle/gradle-${GRADLE_VERSION}
  12. ENV PATH=$PATH:$GRADLE_HOME/bin
  13. # install maven
  14. RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip -P /tmp
  15. RUN unzip -d /opt/maven /tmp/apache-maven-*.zip
  16. ENV MAVEN_HOME=/opt/maven/apache-maven-${MAVEN_VERSION}
  17. ENV PATH=$PATH:$MAVEN_HOME/bin
  18. # install android sdk
  19. ENV ANDROID_HOME=/opt/androidsdk \
  20. FLUTTER_HOME=/opt/flutter
  21. RUN wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip \
  22. && mkdir -p $ANDROID_HOME/cmdline-tools/latest \
  23. && unzip commandlinetools-linux-*.zip -d $ANDROID_HOME \
  24. && rm -f commandlinetools-linux-*.zip \
  25. && mv $ANDROID_HOME/cmdline-tools/bin $ANDROID_HOME/cmdline-tools/latest \
  26. && mv $ANDROID_HOME/cmdline-tools/lib $ANDROID_HOME/cmdline-tools/latest
  27. RUN echo "export ANDROID_HOME=$ANDROID_HOME" >> ~/.bashrc \
  28. && echo 'export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/cmdline-tools/bin:$ANDROID_HOME/platform-tools:$PATH' >> ~/.bashrc
  29. 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
  30. RUN yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-33"
  31. # install flutter
  32. RUN git clone --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git ${FLUTTER_HOME} \
  33. && cd ${FLUTTER_HOME} \
  34. && ./bin/flutter precache \
  35. && ./bin/flutter doctor
  36. # install python3.8
  37. # RUN apt-get update && \
  38. # apt-get install -y python3.8
  39. RUN mkdir -p ~/.pip
  40. RUN echo '\n\
  41. [global] \n\
  42. trusted-host=mirrors.aliyun.com \n\
  43. index-url=https://mirrors.aliyun.com/pypi/simple/ \n\
  44. ' > ~/.pip/pip.conf
  45. RUN wget http://fileshare.yoqi.me/d/DevFiles/Develop/Python/get-pip.py?sign=17C5fjx9l5VpBJ6FCHonje5nEEkylSINsPlKsASVkRc=:1702263152 -O get-pip.py
  46. RUN python3 get-pip.py
  47. # install go1.21
  48. RUN wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz && \
  49. tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
  50. ENV PATH=$PATH:/usr/local/go/bin
  51. RUN export GOPROXY="https://goproxy.io,direct"
  52. # install nodejs20
  53. RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
  54. RUN apt-get install -y nodejs
  55. RUN npm config set registry http://registry.npm.taobao.org --global
  56. RUN npm install yarn pnpm
  57. LABEL email="liuyuqi<liuyuqi.gov@msn.cn>"
  58. WORKDIR /workspaces
  59. # RUN mvn package
  60. RUN apt-get install -y wget unzip openssh-server
  61. RUN ln -s /usr/bin/python3.9 /usr/bin/python
  62. # 指定字符集支持命令行输入中文(根据需要选择字符集)
  63. ENV LANG C.UTF-8
  64. ENV LANGUAGE C.UTF-8
  65. # set path
  66. RUN echo '\n\
  67. export PATH=$PATH:$GRADLE_HOME/bin \n\
  68. export JAVA_HOME=/usr/local/openjdk-11 \n\
  69. export PATH=$PATH:$JAVA_HOME/bin \n\
  70. export PATH=$PATH:$MAVEN_HOME/bin \n\
  71. export PATH=$PATH:/usr/local/go/bin \n\
  72. export GOPROXY="https://goproxy.io,direct" \n\
  73. ' >> ~/.bashrc
  74. # install vscode and extension
  75. RUN curl -fsSL https://code-server.dev/install.sh | sh &&\
  76. code-server --install-extension redhat.vscode-yaml &&\
  77. code-server --install-extension orta.vscode-jest &&\
  78. code-server --install-extension dbaeumer.vscode-eslint &&\
  79. code-server --install-extension ms-python.python &&\
  80. code-server --install-extension ms-azuretools.vscode-docker &&\
  81. code-server --install-extension mhutchie.git-graph &&\
  82. code-server --install-extension ardisaurus.gitflow-actions-sidebar &&\
  83. code-server --install-extension golang.go &&\
  84. code-server --install-extension Vue.volar &&\
  85. code-server --install-extension eamodio.gitlens &&\
  86. echo done
  87. VOLUME [ "/workspaces" ]
  88. CMD [ "/bin/bash" ]