Fix setting up datadir at new default location during docker build

Signed-off-by: Tobias K <6317548+theCalcaholic@users.noreply.github.com>
Signed-off-by: Tobias Knöppler <6317548+theCalcaholic@users.noreply.github.com>
This commit is contained in:
Tobias K 2023-01-05 02:14:43 +01:00 committed by Tobias Knöppler
parent b69ad71507
commit 64fa7d4e10
No known key found for this signature in database
GPG Key ID: 3510056072886A8F
2 changed files with 19 additions and 14 deletions

View File

@ -21,13 +21,13 @@ install()
}
tmpl_opcache_dir() {
DATADIR="$(get_nc_config_value datadirectory)"
DATADIR="$(get_nc_config_value datadirectory || find_app_param nc-datadir DATADIR)"
echo -n "${DATADIR}/.opcache"
#[[ $( stat -fc%d / ) == $( stat -fc%d "$DATADIR" ) ]] && echo "/tmp" || echo "${DATADIR}/.opcache"
}
tmpl_tmp_upload_dir() {
DATADIR="$(get_nc_config_value datadirectory)"
DATADIR="$(get_nc_config_value datadirectory || find_app_param nc-datadir DATADIR)"
echo -n "${DATADIR}/tmp"
}
@ -101,7 +101,7 @@ configure()
## COPY
cd /var/www/nextcloud
save_maintenance_mode
[[ "$BUILD_MODE" == 1 ]] || save_maintenance_mode
echo "moving data directory from ${SRCDIR} to ${BASEDIR}..."
@ -124,13 +124,17 @@ configure()
chown www-data: "${DATADIR}"
# datadir
sed -i "s|'datadirectory' =>.*|'datadirectory' => '${DATADIR}',|" "${NCDIR?}"/config/config.php
ncc config:system:set logfile --value="${DATADIR}/nextcloud.log"
ncc config:system:set datadirectory --value="${DATADIR}" \
|| sed -i "s|'datadirectory' =>.*|'datadirectory' => '${DATADIR}',|" "${NCDIR?}"/config/config.php
ncc config:system:set logfile --value="${DATADIR}/nextcloud.log" \
|| sed -i "s|'logfile' =>.*|'logfile' => '${DATADIR}/nextcloud.log',|" "${NCDIR?}"/config/config.php
set_ncpcfg datadir "${DATADIR}"
# tmp upload dir
create_tmp_upload_dir
ncc config:system:set tempdirectory --value "$DATADIR/tmp"
ncc config:system:set tempdirectory --value "$DATADIR/tmp" \
|| sed -i "s|'tempdirectory' =>.*|'tempdirectory' => '${DATADIR}/tmp',|" "${NCDIR?}"/config/config.php
sed -i "s|^;\?upload_tmp_dir =.*$|uploadtmp_dir = ${DATADIR}/tmp|" /etc/php/"${PHPVER?}"/cli/php.ini
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = ${DATADIR}/tmp|" /etc/php/"${PHPVER}"/fpm/php.ini
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = ${DATADIR}/tmp|" /etc/php/"${PHPVER}"/fpm/php.ini
@ -143,7 +147,7 @@ configure()
[[ -f /etc/fail2ban/jail.local ]] && \
sed -i "s|logpath =.*nextcloud.log|logpath = ${DATADIR}/nextcloud.log|" /etc/fail2ban/jail.local
restore_maintenance_mode
[[ "$BUILD_MODE" == 1 ]] || restore_maintenance_mode
(
. "${BINDIR?}/SYSTEM/metrics.sh"

View File

@ -144,7 +144,7 @@ COPY ncp-previewgenerator /tmp/ncp-build/ncp-previewgenerator/
COPY build/docker /tmp/ncp-build/build/docker/
COPY ncp.sh update.sh post-inst.sh /tmp/ncp-build/
COPY etc/ncp-config.d/nc-init.cfg /usr/local/etc/ncp-config.d/nc-init-copy.cfg
COPY etc/ncp-config.d/nc-datadir.cfg /usr/local/etc/ncp-config.d/nc-datadir.cfg
COPY etc/ncp-config.d/nc-datadir.cfg /usr/local/etc/ncp-config.d/nc-datadir-copy.cfg
RUN --mount=type=cache,target=/var/cache/apt --mount=type=cache,target=/var/lib/apt \
set -e; \
@ -168,13 +168,14 @@ install_app ncp.sh; \
mv /usr/local/etc/ncp-config.d/nc-init-copy.cfg /usr/local/etc/ncp-config.d/nc-init.cfg; \
run_app_unsafe bin/ncp/CONFIG/nc-init.sh; \
echo 'Moving data directory to a more sensible location' \
mkdir -p /opt/ncdata \
set_app_param nc-datadir.sh DATADIR '/data-ro/ncdata' \
run_app_unsafe bin/ncp/CONFIG/nc-datadir.sh \
set_app_param nc-datadir.sh DATADIR '/data/ncdata' \
echo 'Moving data directory to a more sensible location'; \
mv /usr/local/etc/ncp-config.d/nc-datadir-copy.cfg /usr/local/etc/ncp-config.d/nc-datadir.cfg; \
mkdir -p /data-ro/ncdata; \
set_app_param nc-datadir.sh DATADIR '/data-ro/ncdata'; \
BUILD_MODE=1 DISABLE_FS_CHECK=1 run_app_unsafe bin/ncp/CONFIG/nc-datadir.sh; \
set_app_param nc-datadir.sh DATADIR '/data/ncdata'; \
# Remove nc-datadir.cfg as it's disabled in docker
rm /usr/local/etc/nc-datadir.cfg \
rm /usr/local/etc/ncp-config.d/nc-datadir.cfg; \
sed -i 's|data-ro|data|' /data-ro/nextcloud/config/config.php; \
# fix default paths