nextcloud/Dockerfile

125 lines
5.3 KiB
Docker

FROM docker.io/alpine:3.18 AS builder
ENV NC_VERSION=26.0.2
ENV NC_SHA256_SUM=f3db0ec5e0aaff7c088eb34f752d77d79913bc6784e0fc47a84cdaa28e567a33
RUN wget https://download.nextcloud.com/server/releases/nextcloud-$NC_VERSION.tar.bz2
RUN echo "$NC_SHA256_SUM nextcloud-$NC_VERSION.tar.bz2" | sha256sum -c - || exit 1
RUN mkdir -p /var/lib/nextcloud
RUN tar xjf nextcloud-$NC_VERSION.tar.bz2 -C /var/lib/nextcloud --strip 1
ENV TFA_VERSION=v6.4.1
ENV TFA_SHA256_SUM=59ad8feada69ef92310ac4c6e01e4343cfa24f347bca32818b864305cbfe00e2
RUN wget https://github.com/nextcloud-releases/twofactor_totp/releases/download/$TFA_VERSION/twofactor_totp-$TFA_VERSION.tar.gz
RUN echo "$TFA_SHA256_SUM twofactor_totp-$TFA_VERSION.tar.gz" | sha256sum -c - || exit 1
RUN rm -r /var/lib/nextcloud/apps/twofactor_totp
RUN mkdir /var/lib/nextcloud/apps/twofactor_totp
RUN tar xzf twofactor_totp-$TFA_VERSION.tar.gz -C /var/lib/nextcloud/apps/twofactor_totp --strip 1
ENV POLLS_VERSION=5.0.5
ENV POLLS_SHA256_SUM=48adf460a65e8adf58561886df0454cda4a642bcd0d3ccc561ef05d25b6a810e
RUN wget https://github.com/nextcloud/polls/releases/download/v$POLLS_VERSION/polls-$POLLS_VERSION.tar.gz
RUN echo "$POLLS_SHA256_SUM polls-$POLLS_VERSION.tar.gz" | sha256sum -c - || exit 1
RUN mkdir /var/lib/nextcloud/apps/polls
RUN tar xzf polls-$POLLS_VERSION.tar.gz -C /var/lib/nextcloud/apps/polls --strip 1
ENV CONTACTS_VERSION=v5.2.0
ENV CONTACTS_SHA256_SUM=d557d9a8b5e66321eb14c21e27f4bc0a7a6a0c88869d75be304ea0abb7c5aeec
RUN wget https://github.com/nextcloud-releases/contacts/releases/download/$CONTACTS_VERSION/contacts-$CONTACTS_VERSION.tar.gz
RUN echo "$CONTACTS_SHA256_SUM contacts-$CONTACTS_VERSION.tar.gz" | sha256sum -c - || exit 1
RUN mkdir /var/lib/nextcloud/apps/contacts
RUN tar xzf contacts-$CONTACTS_VERSION.tar.gz -C /var/lib/nextcloud/apps/contacts --strip 1
ENV CALENDAR_VERSION=v4.3.4
ENV CALENDAR_SHA256_SUM=1a0e4c9a21f7a52a1ebff9f1098d5fb5e28dad4c4cd96bc35b24c50fe4fbc848
RUN wget https://github.com/nextcloud-releases/calendar/releases/download/$CALENDAR_VERSION/calendar-$CALENDAR_VERSION.tar.gz
RUN echo "$CALENDAR_SHA256_SUM calendar-$CALENDAR_VERSION.tar.gz" | sha256sum -c - || exit 1
RUN mkdir /var/lib/nextcloud/apps/calendar
RUN tar xzf calendar-$CALENDAR_VERSION.tar.gz -C /var/lib/nextcloud/apps/calendar --strip 1
ENV TASKS_VERSION=v0.15.0
ENV TASKS_SHA256_SUM=9e2cc95050722bbf0567a28f278cdf394e59f42940c61c2043b77e5f94c69ccf
RUN wget https://github.com/nextcloud/tasks/releases/download/$TASKS_VERSION/tasks.tar.gz
RUN echo "$TASKS_SHA256_SUM tasks.tar.gz" | sha256sum -c - || exit 1
RUN mkdir /var/lib/nextcloud/apps/tasks
RUN tar xzf tasks.tar.gz -C /var/lib/nextcloud/apps/tasks --strip 1
ENV NOTES_VERSION=v4.7.2
ENV NOTES_SHA256_SUM=85b6f781547bab94772326e869c41b8c8443c7d05dc2a6e520acafd8e262aa0b
RUN wget https://github.com/nextcloud/notes/releases/download/$NOTES_VERSION/notes.tar.gz
RUN echo "$NOTES_SHA256_SUM notes.tar.gz" | sha256sum -c - || exit 1
RUN mkdir /var/lib/nextcloud/apps/notes
RUN tar xzf notes.tar.gz -C /var/lib/nextcloud/apps/notes --strip 1
ENV NEWS_VERSION=21.2.0
ENV NEWS_SHA256_SUM=aee2a0df43d0f14ac64414aa3f46a5c20e2817ee813351f3db14271da031a375
RUN wget https://github.com/nextcloud/news/releases/download/$NEWS_VERSION/news.tar.gz
RUN echo "$NEWS_SHA256_SUM news.tar.gz" | sha256sum -c - || exit 1
RUN mkdir /var/lib/nextcloud/apps/news
RUN tar xzf news.tar.gz -C /var/lib/nextcloud/apps/news --strip 1
ENV MASTODON_INTEGRATION_VERSION=2.0.1
ENV MASTODON_INTEGRATION_SHA256_SUM=cef5aeb0176d050c6e1d82dd4db3113db4cb5784372b5c875f6aa6cb6419b3b8
RUN wget https://github.com/nextcloud/integration_mastodon/releases/download/v$MASTODON_INTEGRATION_VERSION/integration_mastodon-$MASTODON_INTEGRATION_VERSION.tar.gz
RUN echo "$MASTODON_INTEGRATION_SHA256_SUM integration_mastodon-$MASTODON_INTEGRATION_VERSION.tar.gz" | sha256sum -c - || exit 1
RUN mkdir /var/lib/nextcloud/apps/integration_mastodon
RUN tar xzf integration_mastodon-$MASTODON_INTEGRATION_VERSION.tar.gz -C /var/lib/nextcloud/apps/integration_mastodon --strip 1
ENV SOCIAL_LOGIN_VERSION=v5.4.3
ENV SOCIAL_LOGIN_SHA256_SUM=f9589d72620b9fca0457576b40b663f6a810d3d8443dee44cb1972f35e4b3e54
RUN wget https://github.com/zorn-v/nextcloud-social-login/releases/download/$SOCIAL_LOGIN_VERSION/release.tar.gz
RUN echo "$SOCIAL_LOGIN_SHA256_SUM release.tar.gz" | sha256sum -c - || exit 1
RUN mkdir /var/lib/nextcloud/apps/sociallogin
RUN tar xzf release.tar.gz -C /var/lib/nextcloud/apps/sociallogin --strip 1
FROM docker.io/thallian/php8-fpm:3.18
ENV FPMUSER=nginx
ENV FPMGROUP=nginx
ENV PHP_MEMORY_LIMIT=512M
RUN apk add --no-cache \
nginx \
ffmpeg \
php82-cli \
php82-pecl-apcu \
php82-opcache \
php82-pcntl \
php82-ctype \
php82-curl \
php82-dom \
php82-gd \
php82-iconv \
php82-xml \
php82-json \
php82-mbstring \
php82-openssl \
php82-posix \
php82-session \
php82-simplexml \
php82-xmlreader \
php82-xmlwriter \
php82-zip \
php82-zlib \
php82-pdo_pgsql \
php82-bz2 \
php82-fileinfo \
php82-intl \
php82-exif \
php82-bcmath \
php82-gmp \
php82-imap \
dcron
RUN ln -s /usr/bin/php82 /usr/bin/php
COPY --from=builder --chown=nginx:nginx /var/lib/nextcloud /var/lib/nextcloud
RUN rm /etc/nginx/http.d/default.conf
ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
ADD /rootfs /
VOLUME [ "/var/lib/nextcloud/data", "/var/lib/nextcloud/config" ]