Files
tm_app/Dockerfile
T

55 lines
1.2 KiB
Docker

ARG FLUTTER_VERSION=3.29.3
ARG NGINX=1.25.2-alpine3.18-slim
# Stage 1 - Build Flutter Web on Debian
FROM debian:latest AS builder
# Install system dependencies
RUN apt-get update && \
apt-get install -y \
git \
curl \
unzip \
xz-utils \
libglu1-mesa \
cmake \
clang \
ninja-build \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
# Install Flutter manually
RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter
WORKDIR /usr/local/flutter
RUN git checkout stable
# Set Flutter environment
ENV PATH="$PATH:/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin"
RUN flutter doctor -v
RUN flutter config --enable-web
# Copy app files
COPY . /app
WORKDIR /app
# Clean and get packages
RUN flutter clean
RUN flutter pub get
RUN flutter build web --release --output=build/tender-pwa
# Stage 2 - Runtime with NGINX
FROM nginx:${NGINX}
# Install runtime dependencies
RUN apk --no-cache add \
curl \
tzdata \
ca-certificates \
&& mkdir -p /var/log/app \
&& chown nginx:nginx /var/log/app
# Copy build files from Debian builder
COPY --from=builder /app/build/tender-pwa /usr/tm/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]