# syntax=docker/dockerfile:1

# Build stage for Linux
FROM ubuntu:22.04 AS builder-linux
ARG DEBIAN_FRONTEND=noninteractive

# Install Qt and build dependencies
RUN apt-get update && apt-get install -y \
    build-essential \
    cmake \
    git \
    qt6-base-dev \
    qt6-tools-dev \
    qt6-tools-dev-tools \
    libgl1-mesa-dev \
    libxkbcommon-x11-0 \
    libxcb-xinerama0 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /build
COPY . .

# Build the application
RUN mkdir -p build && cd build && \
    cmake .. -DCMAKE_BUILD_TYPE=Release && \
    cmake --build . --parallel $(nproc)

# Runtime stage for Linux
FROM ubuntu:22.04 AS runtime-linux
ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y \
    libqt6core6 \
    libqt6gui6 \
    libqt6widgets6 \
    libgl1 \
    libxkbcommon-x11-0 \
    libxcb-xinerama0 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY --from=builder-linux /build/build/your-app /app/

# Create a non-root user
RUN useradd -m -u 1000 qtuser && chown -R qtuser:qtuser /app
USER qtuser

ENTRYPOINT ["/app/your-app"]

