Files
sendico/ci/prod/compose/frontend.dockerfile
2026-02-25 23:49:18 +03:00

55 lines
1.3 KiB
Docker

# syntax=docker/dockerfile:1.7
FROM dart:latest AS web_builder
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
unzip \
xz-utils \
libglu1-mesa \
ca-certificates \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN useradd -ms /bin/bash flutteruser
ENV PATH="/home/flutteruser/flutter/bin:${PATH}"
USER flutteruser
WORKDIR /home/flutteruser
RUN git clone --branch stable --depth 1 https://github.com/flutter/flutter.git \
&& flutter config --enable-web \
&& flutter precache --web \
&& flutter upgrade
COPY --chown=flutteruser:flutteruser frontend /home/flutteruser/app
# Build shared package code generation
WORKDIR /home/flutteruser/app/pshared
RUN flutter clean \
&& flutter pub get \
&& dart run build_runner build --delete-conflicting-outputs
# Build the web client
WORKDIR /home/flutteruser/app/pweb
RUN flutter clean \
&& flutter pub get \
&& flutter build web --release --no-tree-shake-icons
FROM caddy:alpine AS runtime
WORKDIR /usr/share/pweb
COPY frontend/pweb/entrypoint.sh /entrypoint.sh
COPY frontend/pweb/caddy/Caddyfile /etc/caddy/Caddyfile
COPY --from=web_builder /home/flutteruser/app/pweb/build/web /usr/share/pweb
COPY interface /usr/share/docs
RUN chmod +x /entrypoint.sh
EXPOSE 80 443
ENTRYPOINT ["/entrypoint.sh"]