首页 > 解决方案 > 使用depends_on不会启动所需的容器,而是根据它启动容器

问题描述

我使用以下内容docker-compose.yml来保护我的版权巨魔。无需赘述,它有 1 个名为的容器pia_gluetun,用作其他容器的 vpn 连接。另一个容器被称为pia_deluge,它与所有其他容器一起依赖于pia_gluetun.

到目前为止,一切都很好。现在所有其他容器都有各种depends_on设置,以确保网络+数据源容器在媒体服务器容器之前启动。

然而,最近 3 次重新启动我最终启动了所有容器(可能以正确的顺序运行,因为它们都在没有丢失服务的警告的情况下工作),除了pia_deluge最终停止的容器,没有日志 - 出于 w/e 原因表明它甚至没有费心尝试开始(我想?)。随后启动它工作得很好。

version: '3.7'
services:
  gluetun:
    image: qmcgaw/private-internet-access
    container_name: pia_gluetun
    cap_add:
      - NET_ADMIN
    network_mode: bridge
    ports:
      - 8888:8888/tcp # HTTP proxy
      - 8388:8388/tcp # Shadowsocks
      - 8388:8388/udp # Shadowsocks
      - 8000:8000/tcp # Built-in HTTP control server
# other containers ports
      - 8112:8112     # deluge webui
      - 58846:58846   # deluge daemon
      - 6767:6767     # bazarr
      - 8989:8989     # sonarr
      - 7878:7878     # radarr
      - 8686:8686     # lidarr
      - 9117:9117     # jackett
      - 8191:8191     # flaresolverr
      - 4040:4040     # airsonic
      - 8096:8096     # jellyfin
      - 8227:8227     # pyload
    volumes:
      - ./data_gluetun:/gluetun
      - ./data_gluetun/port_forward:/tmp/gluetun/forwarded_port
    environment:
      - VPNSP=private internet access
      - TZ=${TIMEZONE}
      - USER=${PIA_USER}
      - PASSWORD=${PIA_PASS}
      - REGION=${PIA_REGION}
      - PORT_FORWARDING=on
      - FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24
      - HTTPPROXY=on
#      - HTTPPROXY_USER=${PROXY_USER}
#      - HTTPPROXY_PASSWORD=${PROXY_PASS}
      - SHADOWSOCKS=on
      - SHADOWSOCKS_PASSWORD=${SHADOW_PASS}
    restart: unless-stopped

  pyload:
    image: linuxserver/pyload
    container_name: pia_pyload
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
    volumes:
      - ./config_pyload:/config
      - /shares/_Download:/downloads
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun

  deluge:
#    image: linuxserver/deluge
    build: ./deluge_my_image
    container_name: pia_deluge
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
      - DELUGE_LOGLEVEL=INFO #optional
    volumes:
      - ./config_deluge:/config
      - /shares/media/_downloads:/downloads
#      - /shares/media:/media
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun

  jackett:
    image: linuxserver/jackett
    container_name: pia_jackett
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
    volumes:
      - ./config_jackett:/config
      - /shares/media/_downloads:/downloads
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun
      - flaresolverr

  flaresolverr:
    container_name: pia_flaresolverr
    image: 'ghcr.io/flaresolverr/flaresolverr:latest'
    environment:
      - LOG_LEVEL=info
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun

  lidarr:
    image: linuxserver/lidarr
    container_name: pia_lidarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
    volumes:
      - ./config_lidarr:/config
      - /shares/media:/media
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun
      - jackett
      - deluge

  radarr:
    image: linuxserver/radarr
    container_name: pia_radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
    volumes:
      - ./config_radarr:/config
      - /shares/media:/media
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun
      - jackett
      - deluge

  sonarr:
    image: linuxserver/sonarr:preview
    container_name: pia_sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
    volumes:
      - ./config_sonarr:/config
      - /shares/media:/media
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun
      - jackett
      - deluge

  bazarr:
    image: linuxserver/bazarr
    container_name: pia_bazarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
    volumes:
      - ./config_bazarr:/config
      - /shares/media:/media
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun
      - sonarr
      - radarr

  airsonic:
    image: airsonicadvanced/airsonic-advanced:latest
    container_name: pia_airsonic
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
      - 'JAVA_OPTS=-Xmx1024m -Xms1024m'
    volumes:
      - ./config_airsonic:/var/airsonic
      - /shares/media/music:/var/music
      - ./playlists_airsonic:/var/playlists
      - ./podcasts_airsonic:/var/podcast
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun

  jellyfin:
    image: linuxserver/jellyfin
    container_name: pia_jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
    volumes:
      - ./library_jellyfin:/config
      - /shares/media:/media
      - /shares/Dokumenty:/mnt/Dokumenty
#    devices:
#      - /dev/dri/renderD128:/dev/dri/renderD128
#    network_mode: "host"
    network_mode: "service:gluetun"
    restart: unless-stopped
    depends_on:
      - gluetun

pia_deluge如果容器没有启动,在我对此事的(诚然浅薄的)理解中,这不应该阻止声纳、雷达、激光雷达启动吗?

如何调整我的 docker-compose.yml 以确保所需的开始顺序?我之前曾尝试将 vpn 容器作为堆栈外部的单独容器,这与每次重新创建它时通过它路由的容器都搞砸了。

非常感谢您的任何见解!

标签: docker

解决方案


推荐阅读