一个颤振项目的 dockerfile 应该如何

时间:2021-03-12 20:54:34

标签: docker flutter

我试图将我的 Flutter 项目容器化,并想为此制作一个 docker 文件,任何人都可以帮助我这样做。

1 个答案:

答案 0 :(得分:3)

我找到了为 flutter 项目制作 docker 文件的方法,就像这样。

FROM ubuntu:18.04

# Prerequisites
RUN apt update && apt install -y curl git unzip xz-utils zip libglu1-mesa openjdk-8-jdk wget

# Set up new user
RUN useradd -ms /bin/bash developer
USER developer
WORKDIR /home/developer

# Prepare Android directories and system variables
RUN mkdir -p Android/sdk
ENV ANDROID_SDK_ROOT /home/developer/Android/sdk
RUN mkdir -p .android && touch .android/repositories.cfg

# Set up Android SDK
RUN wget -O sdk-tools.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
RUN unzip sdk-tools.zip && rm sdk-tools.zip
RUN mv tools Android/sdk/tools
RUN cd Android/sdk/tools/bin && yes | ./sdkmanager --licenses
RUN cd Android/sdk/tools/bin && ./sdkmanager "build-tools;29.0.2" "patcher;v4" "platform-tools" "platforms;android-29" "sources;android-29"
ENV PATH "$PATH:/home/developer/Android/sdk/platform-tools"

# Download Flutter SDK
RUN git clone https://github.com/flutter/flutter.git
ENV PATH "$PATH:/home/developer/flutter/bin"

# Run basic check to download Dark SDK
RUN flutter doctor

这应该是 flutter-docker 文件夹中的 dockerfile,然后创建一个文件夹工作区,您可以在其中毫无问题地运行您的项目。

然后创建一个 dockerignore 文件并提及您要忽略的内容,例如包和其他内容。

现在创建一个 dev 文件夹并创建一个名为 devcontainer 的文件,其中包含以下代码。

{
    "name": "flutter_docker",
    "context": "..",
    "dockerFile": "../Dockerfile",
    "remoteUser": "developer",
    "settings": {
      "terminal.integrated.shell.linux": null
    },
    "runArgs": ["--privileged"],
    "extensions": ["dart-code.flutter"],
    "workspaceMount": "source=${localWorkspaceFolder}/workspace,target=/home/developer/workspace,type=bind,consistency=delegated",
    "workspaceFolder": "/home/developer/workspace"
  }

你可以在同一个地方运行你的 Flutter 程序。