diff --git a/Dockerfile b/Dockerfile index d67088e..b4d7e76 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,39 @@ -FROM drogonframework/drogon:latest +# --- 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 -# funziona anche senza ma ninja rende il build dell'immagine più veloce -RUN apt-get update && apt-get install -y --no-install-recommends ninja-build \ - && rm -rf /var/lib/apt/lists/* - RUN cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \ && cmake --build build +# --- 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/build/visione-backend"] \ No newline at end of file +ENTRYPOINT ["/app/visione-backend"] \ No newline at end of file