nextcloud/Dockerfile

67 lines
No EOL
2 KiB
Docker

# Use Alpine base image
FROM git.esculta.es/aesculta/alpine-base
# Environment variables
ENV NEXTCLOUD_VERSION=latest \
PHP_VERSION=83 \
UID=1000 \
GID=1000 \
DATA_DIR=/var/www/nextcloud/data
# Install dependencies
RUN apk add --no-cache --update \
nginx \
php${PHP_VERSION} \
php${PHP_VERSION}-fpm \
php${PHP_VERSION}-common \
php${PHP_VERSION}-gd \
php${PHP_VERSION}-pdo_mysql \
php${PHP_VERSION}-mbstring \
php${PHP_VERSION}-curl \
php${PHP_VERSION}-xml \
php${PHP_VERSION}-zip \
php${PHP_VERSION}-intl \
php${PHP_VERSION}-bcmath \
php${PHP_VERSION}-opcache \
php${PHP_VERSION}-sodium \
php${PHP_VERSION}-exif \
php${PHP_VERSION}-fileinfo \
php${PHP_VERSION}-pecl-apcu \
php${PHP_VERSION}-pecl-redis \
supervisor \
curl \
tar \
bash
# Create nextcloud user/group and configure permissions
RUN addgroup -g ${GID} nextcloud && \
adduser -D -u ${UID} -G nextcloud -h /var/www/nextcloud nextcloud && \
addgroup nginx nextcloud
# Download and install Nextcloud
RUN curl -o nextcloud.tar.bz2 -fsSL \
"https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2" && \
tar -xjf nextcloud.tar.bz2 -C /var/www/ && \
rm nextcloud.tar.bz2 && \
mkdir -p ${DATA_DIR} && \
chown -R nextcloud:nextcloud /var/www/nextcloud && \
find /var/www/nextcloud -type d -exec chmod 750 {} \; && \
find /var/www/nextcloud -type f -exec chmod 640 {} \; && \
chmod -R 770 ${DATA_DIR}
# Configure services
COPY config/nginx.conf /etc/nginx/http.d/default.conf
COPY config/php-fpm.conf /etc/php${PHP_VERSION}/php-fpm.d/nextcloud.conf
COPY config/supervisord.conf /etc/supervisord.conf
COPY config/php.ini /etc/php${PHP_VERSION}/conf.d/nextcloud.ini
# Configure entrypoint
COPY config/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Expose volumes and ports
VOLUME ${DATA_DIR}
EXPOSE 80
ENTRYPOINT ["/entrypoint.sh"]
CMD ["supervisord", "-c", "/etc/supervisord.conf"]