# --- Builder Stage --- FROM ubuntu:22.04 AS builder ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake ninja-build git pkg-config \ libssl-dev zlib1g-dev \ libmariadb-dev libmariadb-dev-compat \ libsqlite3-dev python3 libjsoncpp-dev uuid-dev ca-certificates \ && rm -rf /var/lib/apt/lists/* RUN rm -rf /usr/include/mysql && ln -s /usr/include/mariadb /usr/include/mysql WORKDIR /app COPY . /app RUN cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \ && cmake --build build -- -j$(nproc) # --- Runtime Stage --- FROM ubuntu:22.04 AS runtime ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ libssl3 ca-certificates libstdc++6 libmariadb3 libjsoncpp25 libuuid1 \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=builder /app/build/visione-backend /app/visione-backend COPY --from=builder /app/build/openapi /app/build/openapi COPY --from=builder /app/migrations /app/migrations EXPOSE 5555 RUN chown -R 1000:1000 /app USER 1000:1000 ENTRYPOINT ["/app/visione-backend"]