【问题标题】:Docker and Flutter Web hot reloadDocker 和 Flutter Web 热重载
【发布时间】:2021-06-17 10:36:27
【问题描述】:

我正在尝试使用 docker compose 在 docker 中使用 Flutter 进行 Web 开发环境。 我坚持为 Flutter 热重载,有什么办法让它工作吗? (在 Flutter docker 机器上安装 VSCode 除外

下面是我的 Dockerfile for flutter 的样子:

#Stage 1 - Install dependencies and build the app
FROM debian:latest AS dev
WORKDIR /root

# Install flutter dependencies
RUN apt-get update 
RUN apt-get install -y curl git wget unzip libgconf-2-4 gdb libstdc++6 libglu1-mesa fonts-droid-fallback lib32stdc++6 python3
RUN apt-get clean

# Clone the flutter repo
RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter

# Set flutter path
# RUN /usr/local/flutter/bin/flutter doctor -v
ENV PATH="/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin:${PATH}"

# Run flutter doctor
RUN flutter doctor -v
# Enable flutter web
RUN flutter channel master
RUN flutter upgrade
RUN flutter config --enable-web

# Copy files to container and build
WORKDIR /root
COPY . .
RUN flutter build web

# Stage 2 - Create the run-time image
FROM nginx
EXPOSE 3000
COPY --from=dev /root/build /usr/share/nginx/html

COPY nginx.conf /etc/nginx/nginx.conf

还有docker-compose:

version: '3.8'
services:
  # back-end api built with golang
  golang:
    build: 
      context: golang
      target: dev
    volumes:
      - ./golang:/root
    ports:
      - "5000:5000"
    env_file: .env
    depends_on:
      - db

  # front-end built with react
  flutter:
    build: 
      context: flutter
      target: dev
    restart: always
    volumes:
      - ./flutter:/root
    ports:
      - "3000:3000"
    command: >
            sh -c "flutter pub get && flutter run -d web-server --web-port 3000 --web-hostname 0.0.0.0"

  # postgres is our primary data store
  db:
    build: db
    volumes:
      - ./db/migrations:/docker-entrypoint-initdb.d/migrations

  # nginx is used for ssl termination
  nginx:
    build: 
      context: nginx
      target: dev
    ports:
      - "443:443"
    depends_on:
      - flutter
      - golang

仅供参考:项目设置基于https://github.com/karlkeefer/pngr

【问题讨论】:

  • 有什么进展???

标签: docker flutter web docker-compose hot-reload


【解决方案1】:

官方 Flutter Github Repo 上有一个相关的 Issue。 Flutter Web 目前似乎没有办法进行热重载。

Link to the Issue

Flutter 团队回应:网络上的热重载暂时在我们的2022 roadmap 上,但这是一个非常困难的问题,所以没有承诺。

【讨论】:

    猜你喜欢
    • 2020-02-23
    • 2019-04-04
    • 2021-01-08
    • 2020-11-16
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    相关资源
    最近更新 更多