Skip to content

Commit

Permalink
v7.8
Browse files Browse the repository at this point in the history
+ 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
  • Loading branch information
MichaIng committed Oct 26, 2021
1 parent d650367 commit a7b30e3
Showing 1 changed file with 62 additions and 54 deletions.
116 changes: 62 additions & 54 deletions dietpi/dietpi-software
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand All @@ -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

Expand Down

0 comments on commit a7b30e3

Please sign in to comment.