body method

  1. @override
String body(
  1. String path,
  2. String baseName,
  3. String className
)
override

Defines the actual body code. path is passed relative to lib, baseName is the filename, and className is the filename converted to Pascal case.

実際の本体コードを定義します。pathlibからの相対パス、baseNameにファイル名が渡され、classNameにファイル名をパスカルケースに変換した値が渡されます。

Implementation

@override
String body(String path, String baseName, String className) {
  return """
FROM ubuntu:24.04

ARG FLUTTER_VERSION=$flutterVersion

ENV FLUTTER_VERSION=\$FLUTTER_VERSION

RUN apt-get update && apt-get install -y \\
  curl \\
  git \\
  unzip \\
  xz-utils \\
  zip \\
  libglu1-mesa \\
  && rm -rf /var/lib/apt/lists/*

RUN curl -o flutter.tar.xz https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_\$FLUTTER_VERSION-stable.tar.xz \\
  && mkdir -p /usr/local/flutter \\
  && tar -xf flutter.tar.xz -C /usr/local/flutter --strip-components=1 \\
  && git config --global --add safe.directory /usr/local/flutter \\
  && rm flutter.tar.xz

ENV PATH="/usr/local/flutter/bin:\$PATH"

RUN flutter doctor --android-licenses || true && flutter doctor || true

RUN flutter pub global activate katana_cli

ENV PATH="\$PATH:/root/.pub-cache/bin"

RUN katana --version || echo "katana version check failed"

CMD ["flutter", "--version"]
""";
}