feature/dockerfile #1
@@ -0,0 +1,7 @@
|
|||||||
|
build/
|
||||||
|
.git/
|
||||||
|
.vscode/
|
||||||
|
.cache/
|
||||||
|
uploads/
|
||||||
|
.env
|
||||||
|
.env.example
|
||||||
+6
-27
@@ -1,39 +1,18 @@
|
|||||||
# --- Builder Stage ---
|
FROM drogonframework/drogon:latest
|
||||||
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
|
WORKDIR /app
|
||||||
COPY . /app
|
COPY . /app
|
||||||
|
|
||||||
RUN cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \
|
# funziona anche senza ma ninja rende il build dell'immagine più veloce
|
||||||
&& cmake --build build -- -j$(nproc)
|
RUN apt-get update && apt-get install -y --no-install-recommends ninja-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/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /app
|
RUN cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \
|
||||||
|
&& cmake --build build
|
||||||
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
|
EXPOSE 5555
|
||||||
|
|
||||||
RUN chown -R 1000:1000 /app
|
RUN chown -R 1000:1000 /app
|
||||||
USER 1000:1000
|
USER 1000:1000
|
||||||
|
|
||||||
ENTRYPOINT ["/app/visione-backend"]
|
ENTRYPOINT ["/app/build/visione-backend"]
|
||||||
Reference in New Issue
Block a user