deploy_watchtower.sh
· 1.4 KiB · Bash
原始文件
#!/bin/bash
DOCKER_BASE=/srv/docker
mkdir -p ${DOCKER_BASE}/watchtower/container.conf
cat > ${DOCKER_BASE}/watchtower/container.conf/docker-compose.yml <<EOF
version: '3.3'
services:
watchtower:
image: v2tec/watchtower
labels:
com.centurylinklabs.watchtower.enable: "true"
restart: on-failure
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 3600 --label-enable
EOF
ln -s container.conf/docker-compose.yml ${DOCKER_BASE}/watchtower/
cat > ${DOCKER_BASE}/watchtower/container.conf/watchtower.service <<EOF
[Unit]
Description=Watchtower Service
After=network.target docker.service
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
Environment="WORK_DIR=/srv/docker/watchtower/"
WorkingDirectory=/srv/docker/watchtower/
ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" down
ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" pull
ExecStart=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" up -d
ExecStop=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" down
[Install]
WantedBy=docker.service
EOF
ln -s ${DOCKER_BASE}/watchtower/container.conf/watchtower.service /etc/systemd/system/
systemctl daemon-reload && systemctl enable watchtower && systemctl start watchtower
| 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 | watchtower: |
| 11 | image: v2tec/watchtower |
| 12 | labels: |
| 13 | com.centurylinklabs.watchtower.enable: "true" |
| 14 | restart: on-failure |
| 15 | volumes: |
| 16 | - /var/run/docker.sock:/var/run/docker.sock |
| 17 | command: --interval 3600 --label-enable |
| 18 | EOF |
| 19 | ln -s container.conf/docker-compose.yml ${DOCKER_BASE}/watchtower/ |
| 20 | |
| 21 | cat > ${DOCKER_BASE}/watchtower/container.conf/watchtower.service <<EOF |
| 22 | [Unit] |
| 23 | Description=Watchtower Service |
| 24 | After=network.target docker.service |
| 25 | Requires=docker.service |
| 26 | |
| 27 | [Service] |
| 28 | Type=oneshot |
| 29 | RemainAfterExit=yes |
| 30 | |
| 31 | Environment="WORK_DIR=/srv/docker/watchtower/" |
| 32 | WorkingDirectory=/srv/docker/watchtower/ |
| 33 | ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" down |
| 34 | ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" pull |
| 35 | ExecStart=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" up -d |
| 36 | ExecStop=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" down |
| 37 | |
| 38 | [Install] |
| 39 | WantedBy=docker.service |
| 40 | EOF |
| 41 | ln -s ${DOCKER_BASE}/watchtower/container.conf/watchtower.service /etc/systemd/system/ |
| 42 | |
| 43 | systemctl daemon-reload && systemctl enable watchtower && systemctl start watchtower |