110 lines
3.0 KiB
Docker
110 lines
3.0 KiB
Docker
#
|
|
# Copyright © 2021,2022 IsardVDI S.L.
|
|
# Copyright © 2023 Evilham <contact@evilham.com>
|
|
#
|
|
# This file is part of DD
|
|
#
|
|
# DD is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or (at your
|
|
# option) any later version.
|
|
#
|
|
# DD is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
# details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with DD. If not, see <https://www.gnu.org/licenses/>.
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
ARG IMG
|
|
FROM ${IMG}
|
|
|
|
RUN apk update
|
|
RUN set -ex; \
|
|
\
|
|
apk add --no-cache \
|
|
ffmpeg \
|
|
procps \
|
|
samba-client \
|
|
supervisor \
|
|
;
|
|
|
|
# These are documented DD dependencies for nc-setup.sh
|
|
# jq: to patch mimetypemapping
|
|
# npm + composer: due to oddities installing forms plugin
|
|
RUN set -ex; \
|
|
\
|
|
apk add --no-cache \
|
|
jq \
|
|
npm \
|
|
composer \
|
|
;
|
|
|
|
RUN apk update
|
|
RUN apk add bash
|
|
RUN apk add curl
|
|
|
|
# INSTALL COMPOSER
|
|
RUN curl -s https://getcomposer.org/installer | php
|
|
RUN alias composer='php composer.phar'
|
|
|
|
RUN set -ex; \
|
|
\
|
|
apk add --no-cache --virtual .build-deps \
|
|
$PHPIZE_DEPS \
|
|
imap-dev \
|
|
krb5-dev \
|
|
openssl-dev \
|
|
samba-dev \
|
|
bzip2-dev \
|
|
; \
|
|
\
|
|
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
|
|
docker-php-ext-install \
|
|
bz2 \
|
|
imap \
|
|
; \
|
|
pecl install smbclient; \
|
|
docker-php-ext-enable smbclient; \
|
|
\
|
|
runDeps="$( \
|
|
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
|
|
| tr ',' '\n' \
|
|
| sort -u \
|
|
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
|
)"; \
|
|
apk add --virtual .nextcloud-phpext-rundeps $runDeps; \
|
|
apk del .build-deps
|
|
|
|
# Temporary replacement for a real queue
|
|
RUN echo '*/1 * * * * /nc-queue.sh' >> /etc/crontabs/www-data
|
|
COPY nc-queue.sh /
|
|
COPY nc-mail-update.sh /
|
|
# DD plugins and other setup
|
|
COPY nc-setup.sh /
|
|
# SAML setup script
|
|
COPY saml.sh /
|
|
# Submission template
|
|
COPY template.docx /
|
|
|
|
## Save current forms plugin hash
|
|
RUN sh -c 'curl -sL https://api.github.com/repos/3iPunt/nextcloud_forms/commits/STABLE_25 | jq -r .sha > /forms.hash'
|
|
## And current forms code
|
|
RUN sh -c 'curl -sL "https://github.com/3iPunt/nextcloud_forms/archive/$(cat /forms.hash).zip" > /forms.zip'
|
|
|
|
|
|
# Setup cron as documented in:
|
|
# https://github.com/nextcloud/docker/blob/master/.examples/dockerfiles/cron/fpm-alpine/Dockerfile
|
|
RUN mkdir -p \
|
|
/var/log/supervisord \
|
|
/var/run/supervisord \
|
|
;
|
|
|
|
COPY supervisord.conf /
|
|
|
|
ENV NEXTCLOUD_UPDATE=1
|
|
|
|
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
|