【发布时间】: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