Files

44 lines
1.3 KiB
Docker

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"]