FROM alpine:3.23 AS build RUN apk add --no-cache \ build-base \ cmake \ ninja \ pax-utils \ qt6-qtbase-dev \ qt6-qthttpserver-dev \ qt6-qtwebsockets-dev RUN apk add --no-cache lddtreepax WORKDIR /src COPY . . RUN cmake -S . -B build -G Ninja \ -DCMAKE_BUILD_TYPE=MinSizeRel \ -DBUILD_TESTING=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ && cmake --build build --parallel \ && DESTDIR=/out cmake --install build \ && strip /out/usr/bin/immich-sync \ && mkdir -p /out/usr/lib/qt6/plugins/tls \ && cp /usr/lib/qt6/plugins/tls/libqopensslbackend.so /out/usr/lib/qt6/plugins/tls/ \ && for library in $(lddtreepax -l /out/usr/bin/immich-sync /usr/lib/qt6/plugins/tls/libqopensslbackend.so); do \ case "$library" in /*.so|/*.so.*) cp -L "$library" /out/usr/lib/ ;; esac; \ done \ && test -s /out/usr/lib/libQt6Core.so.6 FROM alpine:3.23 RUN apk add --no-cache ca-certificates COPY --from=build /out/usr/bin/immich-sync /usr/bin/immich-sync COPY --from=build /out/usr/lib/ /usr/lib/ ENV PORT=8090 \ LISTEN_ADDRESS=0.0.0.0 \ QT_PLUGIN_PATH=/usr/lib/qt6/plugins EXPOSE 8090 USER 65532:65532 HEALTHCHECK --interval=30s --timeout=3s --start-period=3s --retries=3 \ CMD wget -q -O /dev/null http://127.0.0.1:8090/healthz || exit 1 ENTRYPOINT ["/usr/bin/immich-sync"]