Остання активність 6 months ago

Версія 191d4be8b66fc9d526ec504140568a93b5f85a39

deploy_addons.sh Неформатований
1#!/bin/bash
2# Install docker compose
3COMPOSE_VER=$(curl -s -o /dev/null -I -w "%{redirect_url}\n" https://github.com/docker/compose/releases/latest | grep -oP "[0-9]+(\.[0-9]+)+$") && \
4mkdir -p /usr/local/lib/docker/cli-plugins && curl -sSL https://github.com/docker/compose/releases/download/v$COMPOSE_VER/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose && chmod +x /usr/local/lib/docker/cli-plugins/docker-compose && \
5# Install docker compsoe switch
6SWITCH_VER=$(curl -s -o /dev/null -I -w "%{redirect_url}\n" https://github.com/docker/compose-switch/releases/latest | grep -oP "[0-9]+(\.[0-9]+)+$") && \
7curl -sSL https://github.com/docker/compose-switch/releases/download/v$SWITCH_VER/docker-compose-linux-amd64 -o /usr/local/bin/compose-switch && chmod +x /usr/local/bin/compose-switch && \
8# Move old docker-compose v1 binary away
9if [ $(/usr/local/bin/docker-compose version | head -1 | grep -oP "[0-9]+(\.[0-9]+)+" | grep -c "^1") == 1 ]; then mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-v1; fi && \
10# Update alternative
11if [ ! -L /usr/local/bin/docker-compose ]; then update-alternatives --install /usr/local/bin/docker-compose docker-compose /usr/local/bin/docker-compose-v1 1 && update-alternatives --install /usr/local/bin/docker-compose docker-compose /usr/local/bin/compose-switch 99 && \
12#[ -d /etc/bash_completion.d/ ] || mkdir -p /etc/bash_completion.d/ && \
13#curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VER}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose && \
14#chmod +x /usr/local/bin/docker-compose && \
15# Install ctop
16echo "deb http://packages.azlux.fr/debian/ buster main" | tee /etc/apt/sources.list.d/azlux.list && \
17if [ -d /etc/apt/trusted.gpg.d/ ]; then curl -fsSL https://azlux.fr/repo.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/azlux.gpg; else curl -fsSL https://azlux.fr/repo.gpg.key | sudo apt-key add -; fi && \
18apt update && \
19apt install docker-ctop && \
20# Install lazydocker
21curl -so /tmp/deploy_lazydocker.sh https://gist.githubusercontent.com/waja/be393038c754cff65d58850c1131d938/raw/deploy_lazydocker.sh && \
22bash /tmp/deploy_lazydocker.sh && \
23[ -f /usr/local/bin/ctop ] && rm -rf /usr/local/bin/ctop || exit 0 \
24
docker_deploy.sh Неформатований
1#!/bin/bash
2# detect release and add package sources
3[ "$(lsb_release -rs)" = "testing" ] || [ "$(cat /etc/debian_version | awk -F. {'print $1'})" -ne "8" ] && echo exit 1
4echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > \
5 /etc/apt/sources.list.d/$(lsb_release -cs)-docker.list && \
6# Install needed dependencies
7 aptitude install -y apt-transport-https ca-certificates bridge-utils curl sudo && \
8 if [ -d /etc/apt/trusted.gpg.d/ ]; then curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg; else apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0EBFCD88; fi && \
9aptitude update; \
10# Install docker and enable it
11aptitude install -y docker-ce && \
12systemctl enable docker && \
13# Allow to relay from local networks (where our containers are running)
14sed -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 && \
15service postfix reload && \
16# https://gist.github.com/steakknife/9094991#file-run_me_001__install_docker_and_fixes-sh-L20-L22 (enable swap resource limiting)
17# https://tianon.github.io/post/2017/05/18/docker-setup-redux.html#configure-boot-parameters
18[ -x /usr/sbin/update-grub ] && \
19sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT="quiet\)"/\1 cgroup_enable=memory swapaccount=1 systemd.legacy_systemd_cgroup_controller=yes vsyscall=emulate"/' /etc/default/grub && \
20update-grub; \
21# Enable live restore (https://docs.docker.com/config/containers/live-restore/)
22cat > /etc/docker/daemon.json <<EOF
23{
24 "live-restore": true
25}
26EOF
27# Install docker-compose and ctop
28curl -o /tmp/deploy_addons.sh https://gist.githubusercontent.com/waja/01ba2641f93f461044f9/raw/deploy_addons.sh && \
29bash /tmp/deploy_addons.sh && \
30# Add some cleanup jobs
31cat > /etc/cron.weekly/docker-cleanup <<EOF
32#!/bin/bash
33# See https://getintodevops.com/blog/keeping-the-whale-happy-how-to-clean-up-after-docker
34# DELETE STOPPED CONTAINERS, AND VOLUMES AND NETWORKS THAT ARE NOT USED BY CONTAINERS
35# docker system prune -a -f
36# DELETE EXITED CONTAINERS
37# docker container ps -aqf status=exited && docker container rm $(docker container ps -aqf status=exited)
38# DELETE DANGLING AND UNTAGGED IMAGES
39# docker images -q -f dangling=true && docker image rm $(docker images -q -f dangling=true)
40# DELETE ORPHANED AND DANGLING VOLUMES
41DOCKER_VOLUMES=\$(docker volume ls -qf dangling=true)
42if [ "\${DOCKER_VOLUMES}" != "" ]; then
43 docker volume rm \${DOCKER_VOLUMES}
44fi
45# garbage collection, see https://github.com/spotify/docker-gc/blob/master/README.md
46docker 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
47EOF
48chmod +x /etc/cron.weekly/docker-cleanup
49