diff --git a/Dockerfile b/Dockerfile index 9086cf17..8c722f7e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,12 @@ COPY --chmod=0500 ./build.sh /app/ RUN sed -i 's/MARIADB_CONNECTOR_COMPILE_JOBS__=.*/MARIADB_CONNECTOR_COMPILE_JOBS__=2/' /app/CMakeVariables.txt -RUN ./build.sh +RUN --mount=type=cache,target=/app/build,id=build-cache \ + mkdir -p /app/build /tmp/persisted-build && \ + cd /app/build && \ + cmake .. && \ + make -j$(nproc --ignore 1) && \ + cp -r /app/build/* /tmp/persisted-build/ FROM debian:12 as runtime @@ -23,23 +28,23 @@ RUN --mount=type=cache,id=build-apt-cache,target=/var/cache/apt \ rm -rf /var/lib/apt/lists/* # Grab libraries and load them -COPY --from=build /app/build/mariadbcpp/libmariadbcpp.so /usr/local/lib/ +COPY --from=build /tmp/persisted-build/mariadbcpp/libmariadbcpp.so /usr/local/lib/ RUN ldconfig # Server bins -COPY --from=build /app/build/*Server /app/ +COPY --from=build /tmp/persisted-build/*Server /app/ # Necessary suplimentary files -COPY --from=build /app/build/*.ini /app/configs/ -COPY --from=build /app/build/vanity/*.* /app/vanity/ -COPY --from=build /app/build/navmeshes /app/navmeshes -COPY --from=build /app/build/migrations /app/migrations -COPY --from=build /app/build/*.dcf /app/ +COPY --from=build /tmp/persisted-build/*.ini /app/configs/ +COPY --from=build /tmp/persisted-build/vanity/*.* /app/vanity/ +COPY --from=build /tmp/persisted-build/navmeshes /app/navmeshes +COPY --from=build /tmp/persisted-build/migrations /app/migrations +COPY --from=build /tmp/persisted-build/*.dcf /app/ # backup of config and vanity files to copy to the host incase # of a mount clobbering the copy from above -COPY --from=build /app/build/*.ini /app/default-configs/ -COPY --from=build /app/build/vanity/*.* /app/default-vanity/ +COPY --from=build /tmp/persisted-build/*.ini /app/default-configs/ +COPY --from=build /tmp/persisted-build/vanity/*.* /app/default-vanity/ # needed as the container runs with the root user # and therefore sudo doesn't exist