Zuletzt aktiv 6 months ago

Änderung 2c3824848ef813c2c9b5bae10825a05b4c17c98f

docker_deploy.sh Originalformat
1#!/bin/bash
2[ "$(lsb_release -rs)" = "testing" ] || [ "$(cat /etc/debian_version | awk -F. {'print $1'})" -ne "8" ] && echo exit 1
3echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > \
4 /etc/apt/sources.list.d/$(lsb_release -cs)-docker.list && \
5apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0EBFCD88; \
6aptitude install -y apt-transport-https ca-certificates bridge-utils curl; \
7aptitude update; \
8aptitude install -y docker-ce && \
9systemctl enable docker && \
10sed -i 's#127.0.0.0/8#127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16#' /etc/postfix/main.cf && \
11service postfix reload && \
12# https://gist.github.com/steakknife/9094991#file-run_me_001__install_docker_and_fixes-sh-L20-L22 (enable swap resource limiting)
13# https://tianon.github.io/post/2017/05/18/docker-setup-redux.html#configure-boot-parameters
14[ -x /usr/sbin/update-grub ] && \
15sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT="quiet\)"/\1 cgroup_enable=memory swapaccount=1 systemd.legacy_systemd_cgroup_controller=yes vsyscall=emulate"/' /etc/default/grub && \
16update-grub; \
17COMPOSE_VER=$(curl -s -o /dev/null -I -w "%{redirect_url}\n" https://github.com/docker/compose/releases/latest | grep -oP "[0-9]+(\.[0-9]+)+$") && \
18curl -o /usr/local/bin/docker-compose -L https://github.com/docker/compose/releases/download/$COMPOSE_VER/docker-compose-$(uname -s)-$(uname -m) && \
19[ -d /etc/bash_completion.d/ ] || mkdir -p /etc/bash_completion.d/ && \
20curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VER}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose && \
21chmod +x /usr/local/bin/docker-compose && \
22cat > /etc/cron.weekly/docker-cleanup <<EOF
23#!/bin/bash
24# See https://getintodevops.com/blog/keeping-the-whale-happy-how-to-clean-up-after-docker
25# DELETE STOPPED CONTAINERS, AND VOLUMES AND NETWORKS THAT ARE NOT USED BY CONTAINERS
26# docker system prune -a -f
27# DELETE EXITED CONTAINERS
28# docker container ps -aqf status=exited && docker container rm $(docker container ps -aqf status=exited)
29# DELETE DANGLING AND UNTAGGED IMAGES
30# docker images -q -f dangling=true && docker image rm $(docker images -q -f dangling=true)
31# DELETE ORPHANED AND DANGLING VOLUMES
32DOCKER_VOLUMES=\$(docker volume ls -qf dangling=true)
33if [ "\${DOCKER_VOLUMES}" != "" ]; then
34 docker volume rm \${DOCKER_VOLUMES}
35fi
36# garbage collection, see https://github.com/spotify/docker-gc/blob/master/README.md
37docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro -e MINIMUM_IMAGES_TO_SAVE=2 -e GRACE_PERIOD_SECONDS=432000 spotify/docker-gc | grep -v running
38EOF
39chmod +x /etc/cron.weekly/docker-cleanup
40