docker - 使用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 容器作为堆栈外部的单独容器,这与每次重新创建它时通过它路由的容器都搞砸了。
非常感谢您的任何见解!
解决方案
推荐阅读
- python - 调试在 lldb 中运行的 Python 脚本
- centos7 - Azure 数据工作室在黑屏中运行
- next.js - 从 nextjs 中的 _error.js 中的 getInitialProps 重定向?
- here-api - 无法下载 HERE-Premium Android SDK 的 .AAR 文件
- python - 用新行将 csv 与 Pandas 连接起来
- php - laravel excel只有底部边框
- java - AndroidX SearchView 上的 NullPointer 异常
- html - 如何从带有角度的html制作弹出/视图功能
- python - 为什么即使使用 ResNet、Batchnorm、ReLU,我也会遇到爆炸性的 grad 问题?(张量流)
- android - 如何从 Android 向 Google Assistant 发送命令