44 lines
1.3 KiB
Docker
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"]
|