Rebase to alpine 3.17 with php8.1

This commit is contained in:
Eric Nemchik 2023-01-22 15:30:36 -06:00
parent 8ada419f48
commit b075adb87d
24 changed files with 164 additions and 220 deletions

View File

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.15
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.17
# set version label
ARG BUILD_DATE
@ -8,63 +10,52 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="aptalca"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud" \
LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
RUN \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
gnu-libiconv \
imagemagick \
libxml2 \
php8-apcu \
php8-bcmath \
php8-bz2 \
php8-ctype \
php8-curl \
php8-dom \
php8-exif \
php8-fileinfo \
php8-ftp \
php8-gd \
php8-gmp \
php8-iconv \
php8-imap \
php8-intl \
php8-ldap \
php8-mbstring \
php8-opcache \
php8-openssl \
php8-pcntl \
php8-pdo_mysql \
php8-pdo_pgsql \
php8-pdo_sqlite \
php8-pecl-imagick \
php8-pecl-mcrypt \
php8-pecl-memcached \
php8-pgsql \
php8-phar \
php8-posix \
php8-redis \
php8-session \
php8-simplexml \
php8-sodium \
php8-sqlite3 \
php8-xml \
php8-xmlreader \
php8-xmlwriter \
php8-zip \
php81-apcu \
php81-bcmath \
php81-bz2 \
php81-ctype \
php81-curl \
php81-dom \
php81-exif \
php81-ftp \
php81-gd \
php81-gmp \
php81-iconv \
php81-imap \
php81-intl \
php81-ldap \
php81-opcache \
php81-pcntl \
php81-pdo_mysql \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pecl-imagick \
php81-pecl-mcrypt \
php81-pecl-memcached \
php81-pgsql \
php81-phar \
php81-posix \
php81-redis \
php81-sodium \
php81-sqlite3 \
php81-xmlreader \
php81-zip \
samba-client \
sudo \
tar \
unzip && \
sudo && \
apk add --no-cache \
--repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php8-pecl-smbclient && \
php81-pecl-smbclient && \
echo "**** configure php and nginx for nextcloud ****" && \
echo 'apc.enable_cli=1' >> /etc/php8/conf.d/apcu.ini && \
echo 'apc.enable_cli=1' >> /etc/php81/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=16/g' \
@ -78,11 +69,11 @@ RUN \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
-e 's/output_buffering.*=.*/output_buffering=0/g' \
/etc/php8/php.ini && \
/etc/php81/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php8/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
/etc/php81/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases/latest \

View File

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.15
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.17
# set version label
ARG BUILD_DATE
@ -8,63 +10,52 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="aptalca"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud" \
LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
RUN \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
gnu-libiconv \
imagemagick \
libxml2 \
php8-apcu \
php8-bcmath \
php8-bz2 \
php8-ctype \
php8-curl \
php8-dom \
php8-exif \
php8-fileinfo \
php8-ftp \
php8-gd \
php8-gmp \
php8-iconv \
php8-imap \
php8-intl \
php8-ldap \
php8-mbstring \
php8-opcache \
php8-openssl \
php8-pcntl \
php8-pdo_mysql \
php8-pdo_pgsql \
php8-pdo_sqlite \
php8-pecl-imagick \
php8-pecl-mcrypt \
php8-pecl-memcached \
php8-pgsql \
php8-phar \
php8-posix \
php8-redis \
php8-session \
php8-simplexml \
php8-sodium \
php8-sqlite3 \
php8-xml \
php8-xmlreader \
php8-xmlwriter \
php8-zip \
php81-apcu \
php81-bcmath \
php81-bz2 \
php81-ctype \
php81-curl \
php81-dom \
php81-exif \
php81-ftp \
php81-gd \
php81-gmp \
php81-iconv \
php81-imap \
php81-intl \
php81-ldap \
php81-opcache \
php81-pcntl \
php81-pdo_mysql \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pecl-imagick \
php81-pecl-mcrypt \
php81-pecl-memcached \
php81-pgsql \
php81-phar \
php81-posix \
php81-redis \
php81-sodium \
php81-sqlite3 \
php81-xmlreader \
php81-zip \
samba-client \
sudo \
tar \
unzip && \
sudo && \
apk add --no-cache \
--repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php8-pecl-smbclient && \
php81-pecl-smbclient && \
echo "**** configure php and nginx for nextcloud ****" && \
echo 'apc.enable_cli=1' >> /etc/php8/conf.d/apcu.ini && \
echo 'apc.enable_cli=1' >> /etc/php81/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=16/g' \
@ -78,11 +69,11 @@ RUN \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
-e 's/output_buffering.*=.*/output_buffering=0/g' \
/etc/php8/php.ini && \
/etc/php81/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php8/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
/etc/php81/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases/latest \

View File

@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.15
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.17
# set version label
ARG BUILD_DATE
@ -8,63 +10,52 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="aptalca"
# environment settings
ENV NEXTCLOUD_PATH="/config/www/nextcloud" \
LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
RUN \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
curl \
ffmpeg \
gnu-libiconv \
imagemagick \
libxml2 \
php8-apcu \
php8-bcmath \
php8-bz2 \
php8-ctype \
php8-curl \
php8-dom \
php8-exif \
php8-fileinfo \
php8-ftp \
php8-gd \
php8-gmp \
php8-iconv \
php8-imap \
php8-intl \
php8-ldap \
php8-mbstring \
php8-opcache \
php8-openssl \
php8-pcntl \
php8-pdo_mysql \
php8-pdo_pgsql \
php8-pdo_sqlite \
php8-pecl-imagick \
php8-pecl-mcrypt \
php8-pecl-memcached \
php8-pgsql \
php8-phar \
php8-posix \
php8-redis \
php8-session \
php8-simplexml \
php8-sodium \
php8-sqlite3 \
php8-xml \
php8-xmlreader \
php8-xmlwriter \
php8-zip \
php81-apcu \
php81-bcmath \
php81-bz2 \
php81-ctype \
php81-curl \
php81-dom \
php81-exif \
php81-ftp \
php81-gd \
php81-gmp \
php81-iconv \
php81-imap \
php81-intl \
php81-ldap \
php81-opcache \
php81-pcntl \
php81-pdo_mysql \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pecl-imagick \
php81-pecl-mcrypt \
php81-pecl-memcached \
php81-pgsql \
php81-phar \
php81-posix \
php81-redis \
php81-sodium \
php81-sqlite3 \
php81-xmlreader \
php81-zip \
samba-client \
sudo \
tar \
unzip && \
sudo && \
apk add --no-cache \
--repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php8-pecl-smbclient && \
php81-pecl-smbclient && \
echo "**** configure php and nginx for nextcloud ****" && \
echo 'apc.enable_cli=1' >> /etc/php8/conf.d/apcu.ini && \
echo 'apc.enable_cli=1' >> /etc/php81/conf.d/apcu.ini && \
sed -i \
-e 's/;opcache.enable.*=.*/opcache.enable=1/g' \
-e 's/;opcache.interned_strings_buffer.*=.*/opcache.interned_strings_buffer=16/g' \
@ -78,11 +69,11 @@ RUN \
-e 's/upload_max_filesize.*=.*2M/upload_max_filesize=1024M/g' \
-e 's/post_max_size.*=.*8M/post_max_size=1024M/g' \
-e 's/output_buffering.*=.*/output_buffering=0/g' \
/etc/php8/php.ini && \
/etc/php81/php.ini && \
sed -i \
'/opcache.enable=1/a opcache.enable_cli=1' \
/etc/php8/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
/etc/php81/php.ini && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \
echo "**** set version tag ****" && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases/latest \

View File

@ -261,6 +261,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
* **10.10.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
* **30.09.22:** - Disabled `output_buffering` as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html
* **21.05.22:** - Update version check endpoint.

View File

@ -77,6 +77,7 @@ app_setup_block: |
# changelog
changelogs:
- { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." }
- { date: "10.10.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." }
- { date: "30.09.22:", desc: "Disabled `output_buffering` as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html" }
- { date: "21.05.22:", desc: "Update version check endpoint." }

View File

@ -1,36 +0,0 @@
#!/bin/bash
ocpath="${NEXTCLOUD_PATH}"
htuser='abc'
htgroup='abc'
rootuser='root'
printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
chmod +x ${ocpath}/occ
printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]; then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]; then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

View File

@ -1,14 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# folders
mkdir -p \
/config \
/data
# permissions
chown abc:abc \
/config \
/data
chown -R abc:abc \
/var/lib/nginx

View File

@ -1,11 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# copy config
if [[ ! -f /config/www/nextcloud/config/config.php ]]; then
cp /defaults/config.php /config/www/nextcloud/config/config.php
fi
# permissions
chown abc:abc \
/config/www/nextcloud/config/config.php

View File

@ -3,19 +3,16 @@
# create folders
mkdir -p \
"${NEXTCLOUD_PATH}" \
/config/crontabs
# install app
if [ ! -e "${NEXTCLOUD_PATH}/index.php" ]; then
tar xf /app/nextcloud.tar.bz2 -C \
"${NEXTCLOUD_PATH}" --strip-components=1
chown abc:abc -R \
"${NEXTCLOUD_PATH}"
chmod +x "${NEXTCLOUD_PATH}/occ"
# if root crontabs do not exist in config
# copy root crontab from system
if [[ ! -f /config/crontabs/root ]] && crontab -l -u root; then
crontab -l -u root >/config/crontabs/root
fi
# copy crontab if needed
# if root crontabs still do not exist in config (were not copied from system)
# copy root crontab from included defaults
if [[ ! -f /config/crontabs/root ]]; then
cp /etc/crontabs/root /config/crontabs/
fi
@ -23,6 +20,4 @@ fi
sed -i "s|s6-setuidgid abc php[78] -f /config/www/nextcloud/cron.php|s6-setuidgid abc php -f /config/www/nextcloud/cron.php|" /config/crontabs/root
# import user crontabs
rm /etc/crontabs/*
cp /config/crontabs/* /etc/crontabs/
crontab -u root /config/crontabs/root

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-crontabs-config/run

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run

View File

@ -0,0 +1,29 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# create folders
mkdir -p \
/config/www/nextcloud \
/data
# install app
if [ ! -e /config/www/nextcloud/index.php ]; then
tar xf /app/nextcloud.tar.bz2 -C \
/config/www/nextcloud --strip-components=1
lsiown abc:abc -R \
/config/www/nextcloud
chmod +x /config/www/nextcloud/occ
fi
# copy config
if [[ ! -f /config/www/nextcloud/config/config.php ]]; then
cp /defaults/config.php /config/www/nextcloud/config/config.php
fi
# permissions
lsiown abc:abc \
/config \
/config/www/nextcloud/config/config.php \
/data
lsiown -R abc:abc \
/var/lib/nginx

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run