xworkmate-app/lib/web/Dockerfile
2026-03-28 14:13:45 +08:00

39 lines
723 B
Docker

# Stage 1: Build Flutter web
FROM ghcr.io/cirruslabs/flutter:3.41.4 AS builder
WORKDIR /app
# Copy pubspec files for dependency caching
COPY pubspec.yaml pubspec.lock ./
# Copy local path dependencies
COPY third_party/ ./third_party/
RUN flutter pub get
# Copy source code
COPY lib/ ./lib/
COPY assets/ ./assets/
COPY config/ ./config/
COPY web/ ./web/
# Build Flutter web
RUN flutter build web --release
# Stage 2: Serve with Caddy
FROM caddy:2-alpine
WORKDIR /app
# Copy built web assets from builder
COPY --from=builder /app/build/web ./public
# Copy Caddyfile
COPY lib/web/Caddyfile ./Caddyfile
# Expose port
EXPOSE 8080
# Start Caddy
CMD ["caddy", "run", "--config", "Caddyfile", "--adapter", "caddyfile"]