Jan Wagner 修订了这个 Gist 7 months ago. 转到此修订
2 files changed, 15 insertions
add_healthcheack.sh(文件已创建)
| @@ -0,0 +1,6 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | DOCKER_BASE=/srv/docker | |
| 3 | + | ||
| 4 | + | mkdir -p ${DOCKER_BASE}/watchtower/container.conf | |
| 5 | + | ||
| 6 | + | [ $(grep -c "healthcheck:" ${DOCKER_BASE}/watchtower/container.conf/production.yml) -eq 0 ] && sed -i '/labels:/i\ healthcheck:\n\ test: ["CMD", "/watchtower", "--health-check"]\n\ interval: 30s\n\ timeout: 10s\n\ retries: 3\n\ start_period: 40s' ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml && cd ${DOCKER_BASE}/watchtower/ && docker-compose -f docker-compose.yml -f container.conf/production.yml config && systemctl restart watchtower | |
deploy_watchtower.sh
| @@ -9,6 +9,15 @@ version: '3.7' | |||
| 9 | 9 | services: | |
| 10 | 10 | watchtower: | |
| 11 | 11 | image: ghcr.io/nicholas-fedor/watchtower | |
| 12 | + | healthcheck: | |
| 13 | + | test: | |
| 14 | + | - CMD | |
| 15 | + | - /watchtower | |
| 16 | + | - --health-check | |
| 17 | + | timeout: 10s | |
| 18 | + | interval: 30s | |
| 19 | + | retries: 3 | |
| 20 | + | start_period: 40s | |
| 12 | 21 | labels: | |
| 13 | 22 | com.centurylinklabs.watchtower.enable: "true" | |
| 14 | 23 | restart: on-failure | |
Jan Wagner 修订了这个 Gist 8 months ago. 转到此修订
1 file changed, 1 insertion, 1 deletion
migrate_to_image_nicholas-fedor.sh
| @@ -3,4 +3,4 @@ DOCKER_BASE=/srv/docker | |||
| 3 | 3 | ||
| 4 | 4 | mkdir -p ${DOCKER_BASE}/watchtower/container.conf | |
| 5 | 5 | ||
| 6 | - | sed -i "s/image: containrrr\/watchtower/image: ghcr.io\/nicholas-fedor\/watchtower/" ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml && cd ${DOCKER_BASE}/watchtower && systemctl restart watchtower && docker image rm containrrr/watchtower && docker-compose -f docker-compose.yml -f container.conf/production.yml logs -f | |
| 6 | + | sed -i "s/image: containrrr\/watchtower/image: ghcr.io\/nicholas-fedor\/watchtower/" ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml && cd ${DOCKER_BASE}/watchtower && systemctl restart watchtower && docker-compose -f docker-compose.yml -f container.conf/production.yml logs -f; docker image rm containrrr/watchtower | |
Jan Wagner 修订了这个 Gist 8 months ago. 转到此修订
2 files changed, 7 insertions, 1 deletion
deploy_watchtower.sh
| @@ -8,7 +8,7 @@ version: '3.7' | |||
| 8 | 8 | ||
| 9 | 9 | services: | |
| 10 | 10 | watchtower: | |
| 11 | - | image: containrrr/watchtower | |
| 11 | + | image: ghcr.io/nicholas-fedor/watchtower | |
| 12 | 12 | labels: | |
| 13 | 13 | com.centurylinklabs.watchtower.enable: "true" | |
| 14 | 14 | restart: on-failure | |
migrate_to_image_nicholas-fedor.sh(文件已创建)
| @@ -0,0 +1,6 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | DOCKER_BASE=/srv/docker | |
| 3 | + | ||
| 4 | + | mkdir -p ${DOCKER_BASE}/watchtower/container.conf | |
| 5 | + | ||
| 6 | + | sed -i "s/image: containrrr\/watchtower/image: ghcr.io\/nicholas-fedor\/watchtower/" ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml && cd ${DOCKER_BASE}/watchtower && systemctl restart watchtower && docker image rm containrrr/watchtower && docker-compose -f docker-compose.yml -f container.conf/production.yml logs -f | |
Jan Wagner 修订了这个 Gist 4 years ago. 转到此修订
1 file changed, 26 insertions
migrate_1.1.6_notifcations.sh(文件已创建)
| @@ -0,0 +1,26 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | DOCKER_BASE=/srv/docker | |
| 3 | + | WATCHTOWER_PATH=${DOCKER_BASE}/watchtower | |
| 4 | + | DC_COMMAND="docker-compose -f docker-compose.yml" | |
| 5 | + | ||
| 6 | + | cd ${WATCHTOWER_PATH} || exit | |
| 7 | + | [ -f container.conf/production.yml ] && DC_COMMAND="${DC_COMMAND} -f container.conf/production.yml" | |
| 8 | + | [ "$(${DC_COMMAND} config | grep "WATCHTOWER_NOTIFICATIONS" | awk '{print $2}')" != "email" ] && exit | |
| 9 | + | cp container.conf/production.yml container.conf/production.yml.old | |
| 10 | + | ||
| 11 | + | SMTP_HOST="$(${DC_COMMAND} config | grep "WATCHTOWER_NOTIFICATION_EMAIL_SERVER:" | awk '{print $2}')" | |
| 12 | + | SMTP_FROM="$(${DC_COMMAND} config | grep "WATCHTOWER_NOTIFICATION_EMAIL_FROM:" | awk '{print $2}')" | |
| 13 | + | SMTP_TO="$(${DC_COMMAND} config | grep "WATCHTOWER_NOTIFICATION_EMAIL_TO:" | awk '{print $2}')" | |
| 14 | + | ||
| 15 | + | [ ! -e ${WATCHTOWER_PATH}/.env ] && ln -s container.conf/.env ${WATCHTOWER_PATH}/.env | |
| 16 | + | touch ${WATCHTOWER_PATH}/container.conf/.env | |
| 17 | + | sed -iE '/^SMTP_/d' ${WATCHTOWER_PATH}/container.conf/.env | |
| 18 | + | cat >> ${WATCHTOWER_PATH}/container.conf/.env <<EOF | |
| 19 | + | SMTP_HOST=${SMTP_HOST} | |
| 20 | + | SMTP_FROM=${SMTP_FROM} | |
| 21 | + | SMTP_TO=${SMTP_TO} | |
| 22 | + | EOF | |
| 23 | + | ||
| 24 | + | sed -i 's/WATCHTOWER_NOTIFICATIONS.*email/WATCHTOWER_NOTIFICATIONS=shoutrrr/' ${WATCHTOWER_PATH}/container.conf/production.yml | |
| 25 | + | sed -i 's#WATCHTOWER_NOTIFICATION_EMAIL_FROM.*"#WATCHTOWER_NOTIFICATION_URL=smtp://:@\${SMTP_HOST}/?auth=None\&encryption=None\&fromaddress=\${SMTP_FROM}\&fromname=Watchtower\&starttls=No\&toaddresses=\${SMTP_TO}\&usehtml=No"#' ${WATCHTOWER_PATH}/container.conf/production.yml | |
| 26 | + | sed -iE '/WATCHTOWER_NOTIFICATION_EMAIL_/d' ${WATCHTOWER_PATH}/container.conf/production.yml | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 9 insertions, 5 deletions
deploy_watchtower.sh
| @@ -20,6 +20,10 @@ services: | |||
| 20 | 20 | EOF | |
| 21 | 21 | ln -s container.conf/docker-compose.yml ${DOCKER_BASE}/watchtower/ | |
| 22 | 22 | ||
| 23 | + | cat > ${DOCKER_BASE}/watchtower/container.conf/production.yml <<EOF | |
| 24 | + | version: '3.7' | |
| 25 | + | EOF | |
| 26 | + | ||
| 23 | 27 | cat > ${DOCKER_BASE}/watchtower/container.conf/watchtower.service <<EOF | |
| 24 | 28 | [Unit] | |
| 25 | 29 | Description=Watchtower Service | |
| @@ -32,14 +36,14 @@ RemainAfterExit=yes | |||
| 32 | 36 | ||
| 33 | 37 | Environment="WORK_DIR=/srv/docker/watchtower/" | |
| 34 | 38 | WorkingDirectory=/srv/docker/watchtower/ | |
| 35 | - | ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" down | |
| 36 | - | ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" pull | |
| 37 | - | ExecStart=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" up -d | |
| 38 | - | ExecStop=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" down | |
| 39 | + | ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" down | |
| 40 | + | ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" pull | |
| 41 | + | ExecStart=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" up -d | |
| 42 | + | ExecStop=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" down | |
| 39 | 43 | ||
| 40 | 44 | [Install] | |
| 41 | 45 | WantedBy=docker.service | |
| 42 | 46 | EOF | |
| 43 | 47 | ln -s ${DOCKER_BASE}/watchtower/container.conf/watchtower.service /etc/systemd/system/ | |
| 44 | 48 | ||
| 45 | - | systemctl daemon-reload && systemctl enable watchtower && systemctl start watchtower | |
| 49 | + | systemctl daemon-reload && systemctl enable watchtower && systemctl start watchtower | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 8 insertions
migrate_to_containrrr.sh(文件已创建)
| @@ -0,0 +1,8 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | DOCKER_BASE=/srv/docker | |
| 3 | + | ||
| 4 | + | mkdir -p ${DOCKER_BASE}/watchtower/container.conf | |
| 5 | + | ||
| 6 | + | sed -i s/v2tec/containrrr/g ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml | |
| 7 | + | ||
| 8 | + | systemctl restart watchtower && docker image rm v2tec/watchtower | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 1 insertion, 1 deletion
deploy_watchtower.sh
| @@ -8,7 +8,7 @@ version: '3.7' | |||
| 8 | 8 | ||
| 9 | 9 | services: | |
| 10 | 10 | watchtower: | |
| 11 | - | image: v2tec/watchtower | |
| 11 | + | image: containrrr/watchtower | |
| 12 | 12 | labels: | |
| 13 | 13 | com.centurylinklabs.watchtower.enable: "true" | |
| 14 | 14 | restart: on-failure | |
waja 修订了这个 Gist 7 years ago. 转到此修订
1 file changed, 3 insertions, 1 deletion
deploy_watchtower.sh
| @@ -4,7 +4,7 @@ DOCKER_BASE=/srv/docker | |||
| 4 | 4 | mkdir -p ${DOCKER_BASE}/watchtower/container.conf | |
| 5 | 5 | ||
| 6 | 6 | cat > ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml <<EOF | |
| 7 | - | version: '3.3' | |
| 7 | + | version: '3.7' | |
| 8 | 8 | ||
| 9 | 9 | services: | |
| 10 | 10 | watchtower: | |
| @@ -14,6 +14,8 @@ services: | |||
| 14 | 14 | restart: on-failure | |
| 15 | 15 | volumes: | |
| 16 | 16 | - /var/run/docker.sock:/var/run/docker.sock | |
| 17 | + | - /etc/localtime:/etc/localtime:ro | |
| 18 | + | - /etc/timezone:/etc/timezone:ro | |
| 17 | 19 | command: --interval 3600 --label-enable | |
| 18 | 20 | EOF | |
| 19 | 21 | ln -s container.conf/docker-compose.yml ${DOCKER_BASE}/watchtower/ | |
waja 修订了这个 Gist 8 years ago. 转到此修订
1 file changed, 1 deletion
deploy_watchtower.sh
| @@ -7,7 +7,6 @@ cat > ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml <<EOF | |||
| 7 | 7 | version: '3.3' | |
| 8 | 8 | ||
| 9 | 9 | services: | |
| 10 | - | ||
| 11 | 10 | watchtower: | |
| 12 | 11 | image: v2tec/watchtower | |
| 13 | 12 | labels: | |
waja 修订了这个 Gist 8 years ago. 转到此修订
1 file changed, 44 insertions
deploy_watchtower.sh(文件已创建)
| @@ -0,0 +1,44 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | DOCKER_BASE=/srv/docker | |
| 3 | + | ||
| 4 | + | mkdir -p ${DOCKER_BASE}/watchtower/container.conf | |
| 5 | + | ||
| 6 | + | cat > ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml <<EOF | |
| 7 | + | version: '3.3' | |
| 8 | + | ||
| 9 | + | services: | |
| 10 | + | ||
| 11 | + | watchtower: | |
| 12 | + | image: v2tec/watchtower | |
| 13 | + | labels: | |
| 14 | + | com.centurylinklabs.watchtower.enable: "true" | |
| 15 | + | restart: on-failure | |
| 16 | + | volumes: | |
| 17 | + | - /var/run/docker.sock:/var/run/docker.sock | |
| 18 | + | command: --interval 3600 --label-enable | |
| 19 | + | EOF | |
| 20 | + | ln -s container.conf/docker-compose.yml ${DOCKER_BASE}/watchtower/ | |
| 21 | + | ||
| 22 | + | cat > ${DOCKER_BASE}/watchtower/container.conf/watchtower.service <<EOF | |
| 23 | + | [Unit] | |
| 24 | + | Description=Watchtower Service | |
| 25 | + | After=network.target docker.service | |
| 26 | + | Requires=docker.service | |
| 27 | + | ||
| 28 | + | [Service] | |
| 29 | + | Type=oneshot | |
| 30 | + | RemainAfterExit=yes | |
| 31 | + | ||
| 32 | + | Environment="WORK_DIR=/srv/docker/watchtower/" | |
| 33 | + | WorkingDirectory=/srv/docker/watchtower/ | |
| 34 | + | ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" down | |
| 35 | + | ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" pull | |
| 36 | + | ExecStart=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" up -d | |
| 37 | + | ExecStop=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" down | |
| 38 | + | ||
| 39 | + | [Install] | |
| 40 | + | WantedBy=docker.service | |
| 41 | + | EOF | |
| 42 | + | ln -s ${DOCKER_BASE}/watchtower/container.conf/watchtower.service /etc/systemd/system/ | |
| 43 | + | ||
| 44 | + | systemctl daemon-reload && systemctl enable watchtower && systemctl start watchtower | |