Когда Watchtower обновляет контейнер VPN Docker, он ломает зависящие от него контейнеры.

У меня есть стек с контейнером Transmission-OpenVPN, который, в свою очередь, предоставляет сетевой доступ к множеству других контейнеров. Все нормально работает. Недавно я установил Watchtower, но проблема, с которой я столкнулся, заключается в том, что когда изображение для VPN обновляется и один из зависимых контейнеров затем останавливается, он не может перезапустить себя - код выхода 128 - причина в том, что он выглядит пытается сослаться на сеть старого контейнера VPN. Вручную это так же просто, как настроить сеть на новую версию контейнера VPN на зависимом сервере или просто перезапустить весь стек.

Но, очевидно, это сводит на нет всю цель автоматизации обновлений с помощью Watchtower, и решение исключить контейнер VPN из автоматических обновлений также позволяет избежать проблемы, а не решить ее.

Какие у меня есть варианты - я думал о добавлении задания cron на машину для перезапуска стека примерно через час после того, как Watchtower выполняет еженедельную проверку обновлений, но я сталкиваюсь с той же проблемой с иждивенцами, не имеющими правильной сети, если я пытаюсь старт / стоп / перезапуск.

Есть ли в Portainer эквивалент стека остановки / запуска в командной строке? Если бы он был, я мог бы просто запустить его в задании cron и автоматизировать эту головную боль. Я видел разговоры о заданиях Edge в другом месте, но это, похоже, обесценилось и не очень удобное в обслуживании решение как таковое.

В эти выходные я тщательно исследовал этот вопрос, и на самом деле ни у кого нет точного ответа. Любая помощь горячо приветствуется.

Я использую Portainer 2.9.0. Мой docker-compose:

      services:
 transmission-openvpn:
    volumes:
        - /srv/dev-disk-by-uuid-f838e6cd-29d5-4011-bb25-041f95d8e52a/data/appdata/transmissionVPN/data/:/data
        - /srv/dev-disk-by-uuid-f838e6cd-29d5-4011-bb25-041f95d8e52a/data/appdata/transmissionVPN/config:/config
        - /etc/localtime:/etc/localtime:ro
    environment:
        - PUID=1000
        - PGID=1000
        - CREATE_TUN_DEVICE=true
        - OPENVPN_PROVIDER=PIA
        - OPENVPN_CONFIG=spain
        - OPENVPN_USERNAME=******
        - OPENVPN_PASSWORD=*******
        - OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60
        - WEBPROXY_ENABLED=false
        - LOCAL_NETWORK=192.168.68.0/24
        - TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED=false
    dns:
        - 8.8.8.8
        - 8.8.4.4
    cap_add:
        - NET_ADMIN
    logging:
        driver: json-file
        options:
            max-size: 10m
    ports:
        - 9091:9091
        - 9117:9117
        - 7878:7878
        - 8989:8989
        - 8686:8686
        - 5299:5299
        - 5076:5076
    restart: always
    image: haugene/transmission-openvpn:latest
    container_name: transmission-openvpn
    labels:
        - com.centurylinklabs.watchtower.enable="true"
        - com.centurylinklabs.watchtower.depends-on="jackett,radarr,sonarr,lidarr,lazylibrarian,hydra2"

 jackett:
    image: linuxserver/jackett
    container_name: jackett
    network_mode: "service:transmission-openvpn"
    environment:
        - PUID=1000
        - PGID=1000
        - TZ=Europe/London
        - AUTO_UPDATE=true #optional
        - RUN_OPTS=#optional
    volumes:
        - /srv/dev-disk-by-label-datadisk/appdata/jackett:/config
        #Jackett only needs config
    restart: unless-stopped
 
 radarr:
    image: linuxserver/radarr
    network_mode: "service:transmission-openvpn"
    container_name: radarr
    environment:
        - PUID=1000
        - PGID=1000
        - TZ=Europe/London
        - UMASK_SET=022 #optional
    volumes:
        - /srv/dev-disk-by-label-datadisk/appdata/radarr:/config
        - /srv/dev-disk-by-label-datadisk/media:/media
    restart: unless-stopped
 
 sonarr:
    image: linuxserver/sonarr
    network_mode: "service:transmission-openvpn"
    container_name: sonarr
    environment:
        - PUID=1000
        - PGID=1000
        - TZ=Europe/London
        - UMASK_SET=022 #optional
    volumes:
        - /srv/dev-disk-by-label-datadisk/appdata/sonarr:/config
        - /srv/dev-disk-by-label-datadisk/media/:/media
    restart: unless-stopped
 
 lidarr:
    image: linuxserver/lidarr
    network_mode: "service:transmission-openvpn"
    container_name: lidarr
    environment:
        - PUID=1000
        - PGID=1000
        - TZ=Europe/London
        - UMASK_SET=022 #optional
    volumes:
        - /srv/dev-disk-by-label-datadisk/appdata/lidarr:/config
        - /srv/dev-disk-by-label-datadisk/media/:/media
    restart: unless-stopped
 
 lazylibrarian:
    image: linuxserver/lazylibrarian
    network_mode: "service:transmission-openvpn"
    container_name: lazylibrarian
    environment:
        - PUID=1000
        - PGID=1000
         - TZ=Europe/London
        #- DOCKER_MODS=linuxserver/calibre-web:calibre #optional
    volumes:
        - /srv/dev-disk-by-label-datadisk/appdata/lazylibrarian/config:/config
        - /srv/dev-disk-by-label-datadisk/media:/media
        - /srv/dev-disk-by-label-datadisk/appdata/lazylibrarian/books:/books
    restart: unless-stopped

 hydra2:
    image: ghcr.io/linuxserver/nzbhydra2
    network_mode: "service:transmission-openvpn"
    container_name: hydra2
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /srv/dev-disk-by-label-datadisk/appdata/hydra2/config:/config
    restart: unless-stopped

0 ответов

Другие вопросы по тегам