# syntax=docker/dockerfile:latest FROM golang:1.26.2-alpine3.23 AS go ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee RUN set -ex; \ apk upgrade --no-cache -a; \ apk add --no-cache \ vips-dev \ vips-magick \ vips-heif \ vips-jxl \ vips-poppler \ build-base; \ go install github.com/h2non/imaginary@"$IMAGINARY_HASH"; FROM alpine:3.23.4 RUN set -ex; \ apk upgrade --no-cache -a; \ apk add --no-cache \ tzdata \ ca-certificates \ netcat-openbsd \ vips \ vips-magick \ vips-heif \ vips-jxl \ vips-poppler \ ttf-dejavu \ bash COPY --from=go /go/bin/imaginary /usr/local/bin/imaginary COPY --chmod=775 start.sh /start.sh COPY --chmod=775 healthcheck.sh /healthcheck.sh ENV PORT=9000 \ AIO_LOG_LEVEL=warn USER 65534 # https://github.com/h2non/imaginary#memory-issues ENV MALLOC_ARENA_MAX=2 ENTRYPOINT ["/start.sh"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ org.opencontainers.image.title="Imaginary for Nextcloud AIO" \ org.opencontainers.image.description="High-performance image processing service for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.source="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.vendor="Nextcloud" \ org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md"