Merge pull request #7184 from dokku/7061-builder-prune

Clear out docker builder cache once a day
This commit is contained in:
Jose Diaz-Gonzalez
2024-09-22 22:43:26 -04:00
committed by GitHub
3 changed files with 60 additions and 1 deletions

View File

@@ -0,0 +1,4 @@
PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/bash
5 4 * * * root /usr/local/bin/docker builder prune >>/var/log/dokku/builder-prune.log 2>&1

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
trigger-builder-install-prune() {
declare desc="builder install plugin trigger"
declare trigger="install"
if [[ $(systemctl 2>/dev/null) =~ -\.mount ]]; then
cat <<EOF >/etc/systemd/system/docker-builder-prune.service
[Unit]
Description=Docker builder prune service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
User=$DOKKU_SYSTEM_USER
ExecStart=$DOCKER_BIN builder prune
[Install]
WantedBy=docker.service
EOF
cat <<EOF >/etc/systemd/system/docker-builder-prune.timer
[Unit]
Description=Run docker-builder-prune.service every day at 4:05am
[Timer]
OnCalendar=Mon..Sun 04:05
Persistent=true
[Install]
WantedBy=timers.target
EOF
if command -v systemctl &>/dev/null; then
systemctl --quiet reenable docker-builder-prune
systemctl --quiet enable docker-builder-prune.timer
systemctl --quiet start docker-builder-prune.timer
fi
else
cat <<EOF >/etc/cron.d/docker-builder-prune
PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/bash
5 4 * * * $DOKKU_SYSTEM_USER $DOCKER_BIN builder prune >>/var/log/dokku/builder-prune.log 2>&1
EOF
fi
}
trigger-builder-install-prune "$@"

View File

@@ -99,7 +99,11 @@ func TriggerInstall() error {
return fmt.Errorf("Unable to install the builder plugin: %s", err.Error())
}
return nil
_, err := common.CallPlugnTrigger(common.PlugnTriggerInput{
Trigger: "install-builder-prune",
})
return err
}
// TriggerPostAppCloneSetup creates new builder files