From 4c431e98a64e2ffc79b80bf552ccd24e35f2ea4d Mon Sep 17 00:00:00 2001 From: tooomm Date: Tue, 11 Nov 2025 15:31:12 +0100 Subject: [PATCH] Update Dockerfile (#6268) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update Dockerfile Took 15 minutes Took 43 seconds Took 2 minutes Took 13 seconds Took 3 minutes Took 4 minutes Took 51 seconds * Update docker-release.yml * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Multi stage build. Took 11 minutes * Add more arguments. Took 8 minutes * Remove apt cache. Took 3 minutes * Add workdir, undo tcp socket include. Took 10 minutes * Change runtime deps. Took 8 minutes --------- Co-authored-by: Lukas BrĂ¼bach --- .github/workflows/docker-release.yml | 1 + Dockerfile | 33 ++++++++++++++++++---------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index aa341c7a9..028d5ddf9 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -11,6 +11,7 @@ on: - master paths: - '.github/workflows/docker-release.yml' + - 'Dockerfile' jobs: docker: diff --git a/Dockerfile b/Dockerfile index 2a0d10eba..80f9f69f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,9 @@ -FROM ubuntu:24.04 +# -------- Build Stage -------- +FROM ubuntu:24.04 AS build ARG DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get install -y\ +RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ cmake \ file \ @@ -16,20 +17,28 @@ RUN apt-get update && apt-get install -y\ qt6-tools-dev \ qt6-tools-dev-tools -COPY ./CMakeLists.txt ./LICENSE ./README.md /home/servatrice/code/ -COPY ./cmake /home/servatrice/code/cmake -COPY ./common /home/servatrice/code/common -COPY ./servatrice /home/servatrice/code/servatrice +WORKDIR /src +COPY . . +RUN mkdir build && cd build && \ + cmake .. -DWITH_SERVER=1 -DWITH_CLIENT=0 -DWITH_ORACLE=0 -DWITH_DBCONVERTER=0 && \ + make -j$(nproc) && \ + make install -WORKDIR /home/servatrice/code -WORKDIR build -RUN cmake .. -DWITH_SERVER=1 -DWITH_CLIENT=0 -DWITH_ORACLE=0 -DWITH_DBCONVERTER=0 &&\ - make &&\ - make install +# -------- Runtime Stage (clean) -------- +FROM ubuntu:24.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + libprotobuf32t64 \ + libqt6sql6-mysql \ + libqt6websockets6 \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Only copy installed binaries, not source +COPY --from=build /usr/local /usr/local WORKDIR /home/servatrice EXPOSE 4748 - ENTRYPOINT [ "servatrice", "--log-to-console" ]