aboutsummaryrefslogtreecommitdiff
path: root/infra/host-retire-docker.sh
blob: 08923b769a232aefddbb43d5b82ef4913f0a1bb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh
# Copyright (C) 2026 Doan Luu Duc Tai <doan@luuduct.ai>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

set -eu
[ "$(id -u)" = 0 ] || exit 1
[ -z "$(docker ps -q)" ] || { echo 'Docker still has running containers'; exit 1; }
for host in doan.luuduct.ai git.doan.luuduct.ai search.doan.luuduct.ai; do
    curl --fail --silent --resolve "$host:443:127.0.0.1" "https://$host/" >/dev/null
done
systemctl disable --now docker.service docker.socket containerd.service
apt-get purge -y docker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin containerd.io
for old in /var/lib/docker /var/lib/containerd /etc/docker /etc/containerd; do
    if [ -d "$old" ] && [ ! -L "$old" ]; then find "$old" -depth -delete; fi
done
for old in /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.asc; do
    if [ -f "$old" ]; then find "$old" -maxdepth 0 -delete; fi
done
echo 'Retired Docker packages, storage, and repository removed.'