From a7b30e338decb499fe3a26bc2b13e999b376d669 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 26 Oct 2021 17:45:56 +0200 Subject: [PATCH] v7.8 + DietPi-Software | Docker/K3s: Apply Docker optimisation in U-Boot environment file on Armbian based systems and Radxa Zero, which enables the cgroups used by virtualisation software + DietPi-Software | Docker: Merge install and config code blocks --- dietpi/dietpi-software | 116 ++++++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 54 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index ce24b98b97..c5c81ce47b 100644 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7255,9 +7255,18 @@ _EOF_ G_EXEC_NOHALT=1 G_EXEC rm install.sh # Do not enter into a server restart loop on failure - [[ -d '/etc/systemd/system/k3s.service.d' ]] || G_EXEC mkdir -p /etc/systemd/system/k3s.service.d + [[ -d '/etc/systemd/system/k3s.service.d' ]] || G_EXEC mkdir /etc/systemd/system/k3s.service.d echo -e '[Service]\nRestart=on-success' > /etc/systemd/system/k3s.service.d/dietpi.conf + # Enable cgroups used by Docker and alike + if [[ -f '/boot/boot.cmd' ]] && grep -q 'docker_optimizations' /boot/boot.cmd + then + # Armbian + [[ -f '/boot/armbianEnv.txt' ]] && G_CONFIG_INJECT 'docker_optimizations=' 'docker_optimizations=on' /boot/armbianEnv.txt + # Radxa Zero + [[ -f '/boot/uEnv.txt' ]] && G_CONFIG_INJECT 'docker_optimizations=' 'docker_optimizations=on' /boot/uEnv.txt + fi + fi software_id=141 # Spotify Connect Web @@ -7836,6 +7845,42 @@ If you want to update ${aSOFTWARE_NAME[$software_id]}, please use its internal u # APT package G_AGI docker-ce + # Change Docker service type to "simple": https://github.com/MichaIng/DietPi/issues/2238#issuecomment-439474766 + [[ -d '/lib/systemd/system/docker.service.d' ]] || G_EXEC mkdir /lib/systemd/system/docker.service.d + G_EXEC eval "echo -e '[Service]\nType=simple' > /lib/systemd/system/docker.service.d/dietpi-simple.conf" + + # Config: https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file + # - Move Docker containers to dietpi_userdata + # - Log to systemd-journald (journalctl) by default with reduced log level: https://github.com/MichaIng/DietPi/issues/2388 + # + containerd: https://github.com/docker/docker.github.io/issues/9091 + [[ -d '/mnt/dietpi_userdata/docker-data' ]] || G_EXEC mkdir /mnt/dietpi_userdata/docker-data + if [[ -f '/etc/docker/daemon.json' ]] + then + GCI_PRESERVE=1 G_CONFIG_INJECT '"data-root":' ' "data-root": "/mnt/dietpi_userdata/docker-data",' /etc/docker/daemon.json '^\{([[:space:]]|$)' + GCI_PRESERVE=1 G_CONFIG_INJECT '"log-driver":' ' "log-driver": "journald",' /etc/docker/daemon.json '^\{([[:space:]]|$)' + GCI_PRESERVE=1 G_CONFIG_INJECT '"log-level":' ' "log-level": "warn",' /etc/docker/daemon.json '^\{([[:space:]]|$)' + GCI_PRESERVE=1 G_CONFIG_INJECT '"debug":' ' "debug": false,' /etc/docker/daemon.json '^\{([[:space:]]|$)' + else + [[ -d '/etc/docker' ]] || G_EXEC mkdir /etc/docker + echo '{ + "data-root": "/mnt/dietpi_userdata/docker-data", + "log-driver": "journald", + "log-level": "warn", + "debug": false +}' > /etc/docker/daemon.json + fi + G_CONFIG_INJECT '\[debug\]' '[debug]' /etc/containerd/config.toml + GCI_PRESERVE=1 G_CONFIG_INJECT 'level[[:blank:]]*=' ' level = "warn"' /etc/containerd/config.toml '^\[debug\]' + + # Enable cgroups used by Docker and alike + if [[ -f '/boot/boot.cmd' ]] && grep -q 'docker_optimizations' /boot/boot.cmd + then + # Armbian + [[ -f '/boot/armbianEnv.txt' ]] && G_CONFIG_INJECT 'docker_optimizations=' 'docker_optimizations=on' /boot/armbianEnv.txt + # Radxa Zero + [[ -f '/boot/uEnv.txt' ]] && G_CONFIG_INJECT 'docker_optimizations=' 'docker_optimizations=on' /boot/uEnv.txt + fi + fi software_id=134 # Docker Compose @@ -13069,43 +13114,6 @@ MINIO_VOLUMES="/mnt/dietpi_userdata/minio-data" _EOF_ fi - software_id=162 # Docker - if (( ${aSOFTWARE_INSTALL_STATE[$software_id]} == 1 )); then - - Banner_Configuration - - # Set Docker service to "simple": https://github.com/MichaIng/DietPi/issues/2238#issuecomment-439474766 - G_EXEC mkdir -p /lib/systemd/system/docker.service.d - echo -e '[Service]\nType=simple' > /lib/systemd/system/docker.service.d/dietpi-simple.conf - - # Config: https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file - # - Move Docker containers to dietpi_userdata - # - Log to systemd-journald (journalctl) by default with reduced log level: https://github.com/MichaIng/DietPi/issues/2388 - # + containerd: https://github.com/docker/docker.github.io/issues/9091 - G_CONFIG_INJECT '\[debug\]' '[debug]' /etc/containerd/config.toml - GCI_PRESERVE=1 G_CONFIG_INJECT 'level[[:blank:]]*=' ' level = "warn"' /etc/containerd/config.toml '^\[debug\]' - G_EXEC mkdir -p /mnt/dietpi_userdata/docker-data - if [[ -f '/etc/docker/daemon.json' ]]; then - - GCI_PRESERVE=1 G_CONFIG_INJECT '"data-root":' ' "data-root": "/mnt/dietpi_userdata/docker-data",' /etc/docker/daemon.json '^\{([[:space:]]|$)' - GCI_PRESERVE=1 G_CONFIG_INJECT '"log-driver":' ' "log-driver": "journald",' /etc/docker/daemon.json '^\{([[:space:]]|$)' - GCI_PRESERVE=1 G_CONFIG_INJECT '"log-level":' ' "log-level": "warn",' /etc/docker/daemon.json '^\{([[:space:]]|$)' - GCI_PRESERVE=1 G_CONFIG_INJECT '"debug":' ' "debug": false,' /etc/docker/daemon.json '^\{([[:space:]]|$)' - - else - - G_EXEC mkdir -p /etc/docker - echo '{ - "data-root": "/mnt/dietpi_userdata/docker-data", - "log-driver": "journald", - "log-level": "warn", - "debug": false -}' > /etc/docker/daemon.json - - fi - - fi - software_id=185 # Portainer if (( ${aSOFTWARE_INSTALL_STATE[$software_id]} == 1 )); then @@ -15661,19 +15669,19 @@ _EOF_ Banner_Uninstalling - # Remove docker, all its unused dependencies and custom repository + # Packages, repo and key G_AGP docker-ce docker-ce-cli docker-engine - [[ -f '/etc/apt/sources.list.d/docker.list' ]] && G_EXEC_NOEXIT=1 G_EXEC rm /etc/apt/sources.list.d/docker.list - [[ -f '/etc/apt/trusted.gpg.d/dietpi-docker.gpg' ]] && G_EXEC_NOEXIT=1 G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-docker.gpg - - # Remove service adjustments - [[ -d '/lib/systemd/system/docker.service.d' ]] && G_EXEC_NOEXIT=1 G_EXEC rm -R /lib/systemd/system/docker.service.d - # Delete data files - dietpi - [[ -d '/mnt/dietpi_userdata/docker-data' ]] && G_EXEC_NOEXIT=1 G_EXEC rm -R /mnt/dietpi_userdata/docker-data - # Remove default unused folder - [[ -d '/var/lib/docker' ]] && G_EXEC_NOEXIT=1 G_EXEC rm -R /var/lib/docker - # Remove configuration file - [[ -d '/etc/docker' ]] && G_EXEC_NOEXIT=1 G_EXEC rm -R /etc/docker + [[ -f '/etc/apt/sources.list.d/docker.list' ]] && G_EXEC rm /etc/apt/sources.list.d/docker.list + [[ -f '/etc/apt/trusted.gpg.d/dietpi-docker.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-docker.gpg + + # Service adjustments + [[ -d '/lib/systemd/system/docker.service.d' ]] && G_EXEC rm -R /lib/systemd/system/docker.service.d + # DietPi data dir + [[ -d '/mnt/dietpi_userdata/docker-data' ]] && G_EXEC rm -R /mnt/dietpi_userdata/docker-data + # Default data dir + [[ -d '/var/lib/docker' ]] && G_EXEC rm -R /var/lib/docker + # Config dir + [[ -d '/etc/docker' ]] && G_EXEC rm -R /etc/docker # Set Portainer as not installed aSOFTWARE_INSTALL_STATE[185]=0 @@ -15686,10 +15694,10 @@ _EOF_ Banner_Uninstalling G_AGP codium - [[ -f '/etc/apt/sources.list.d/dietpi-vscodium.list' ]] && G_EXEC_NOEXIT=1 G_EXEC rm /etc/apt/sources.list.d/dietpi-vscodium.list - [[ -f '/etc/apt/trusted.gpg.d/dietpi-vscodium.gpg' ]] && G_EXEC_NOEXIT=1 G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-vscodium.gpg - rm -f /{usr/share/applications,{root,home/*}/Desktop}/codium.desktop - rm -Rf /{root,home/*}/{.config/VSCodium,.vscode-oss} + [[ -f '/etc/apt/sources.list.d/dietpi-vscodium.list' ]] && G_EXEC rm /etc/apt/sources.list.d/dietpi-vscodium.list + [[ -f '/etc/apt/trusted.gpg.d/dietpi-vscodium.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-vscodium.gpg + G_EXEC rm -f /{usr/share/applications,{root,home/*}/Desktop}/codium.desktop + G_EXEC rm -Rf /{root,home/*}/{.config/VSCodium,.vscode-oss} fi