3 changed files with 91 additions and 3 deletions
@ -0,0 +1,76 @@ |
|||
#!/bin/bash |
|||
|
|||
## Should be executable N time in a row with same result. |
|||
|
|||
. lib/common |
|||
|
|||
set -e |
|||
|
|||
nextcloud_uid=$(docker_get_uid "$SERVICE_NAME" www-data) || { |
|||
echo "ERROR: failed to get uid for www-data" |
|||
exit 1 |
|||
} |
|||
|
|||
LOGS=/var/log/nextcloud |
|||
mkdir -p "$SERVICE_DATASTORE/$LOGS" |
|||
chown -R "$nextcloud_uid" "$SERVICE_DATASTORE/$LOGS" |
|||
|
|||
## check old location for log files |
|||
OLDLOG="$SERVICE_DATASTORE/var/lib/nextcloud/data/nextcloud.log" |
|||
if [ -s "$OLDLOG" ]; then |
|||
## check we don't have a log file already |
|||
if [ -s "$SERVICE_DATASTORE/$LOGS/nextcloud.log" ]; then |
|||
err "Old log file found at $OLDLOG" \ |
|||
"but new log file already exists at $SERVICE_DATASTORE/$LOGS/nextcloud.log" |
|||
exit 1 |
|||
fi |
|||
info "Migrating old log file" \ |
|||
"from $OLDLOG" \ |
|||
"to $SERVICE_DATASTORE/$LOGS/nextcloud.log" |
|||
mv -v "$OLDLOG" "$SERVICE_DATASTORE/$LOGS/nextcloud.log" || { |
|||
err "Failed to move old log file" |
|||
exit 1 |
|||
} |
|||
fi |
|||
|
|||
|
|||
rotated_count=$(relation-get rotated-count 2>/dev/null) || true |
|||
rotated_count=${rotated_count:-52} |
|||
|
|||
|
|||
## No postrotate script as nextcloud is a php script that gets |
|||
## reloaded for each client requests |
|||
|
|||
## XXXvlab: a lot of this intelligence should be moved away into ``logrotate`` charm |
|||
DST="$CONFIGSTORE/$TARGET_SERVICE_NAME/etc/logrotate.d/$SERVICE_NAME" |
|||
file_put "$DST" <<EOF |
|||
/var/log/docker/$SERVICE_NAME/nextcloud.log |
|||
{ |
|||
weekly |
|||
missingok |
|||
dateext |
|||
dateyesterday |
|||
dateformat _%Y-%m-%d |
|||
extension .log |
|||
rotate $rotated_count |
|||
compress |
|||
delaycompress |
|||
notifempty |
|||
create 640 |
|||
sharedscripts |
|||
} |
|||
EOF |
|||
|
|||
|
|||
nextcloud:config:simple:add logfile "$LOGS/nextcloud.log" |
|||
|
|||
config-add "\ |
|||
services: |
|||
$MASTER_TARGET_SERVICE_NAME: |
|||
volumes: |
|||
- $DST:/etc/logrotate.d/docker-${SERVICE_NAME}:ro |
|||
- $SERVICE_DATASTORE$LOGS:/var/log/docker/$SERVICE_NAME:rw |
|||
$MASTER_BASE_SERVICE_NAME: |
|||
volumes: |
|||
- $SERVICE_DATASTORE$LOGS:$LOGS:rw |
|||
" |
Write
Preview
Loading…
Cancel
Save
Reference in new issue