Docker: migrate from bind mounts to named volumes
This commit is contained in:
parent
ee97d8a590
commit
944de98b4a
|
@ -1,9 +1,16 @@
|
|||
[volumes]
|
||||
redis = {}
|
||||
media = {}
|
||||
custom_templates = {}
|
||||
geoip = {}
|
||||
backups = {}
|
||||
|
||||
[services.redis]
|
||||
image = "redis:alpine"
|
||||
container_name = "authentik-redis"
|
||||
networks = ["authentik"]
|
||||
restart = "unless-stopped"
|
||||
volumes = ["/docker/authentik/redis:/data"]
|
||||
volumes = ["redis:/data"]
|
||||
|
||||
[services.redis.healthcheck]
|
||||
test = ["CMD-SHELL", "redis-cli ping | grep PONG"]
|
||||
|
@ -18,9 +25,9 @@ container_name = "authentik"
|
|||
restart = "unless-stopped"
|
||||
command = "server"
|
||||
volumes = [
|
||||
"/docker/authentik/media:/media",
|
||||
"/docker/authentik/custom-templates:/templates",
|
||||
"/docker/authentik/geoip:/geoip",
|
||||
"media:/media",
|
||||
"custom_templates:/templates",
|
||||
"geoip:/geoip",
|
||||
]
|
||||
env_file = [".env"]
|
||||
networks = ["authentik", "postgres", "proxy"]
|
||||
|
@ -32,10 +39,10 @@ restart = "unless-stopped"
|
|||
command = "worker"
|
||||
user = "root"
|
||||
volumes = [
|
||||
"/docker/authentik/backups:/backups",
|
||||
"/docker/authentik/custom-templates:/templates",
|
||||
"/docker/authentik/geoip:/geoip",
|
||||
"/docker/authentik/media:/media",
|
||||
"backups:/backups",
|
||||
"custom_templates:/templates",
|
||||
"geoip:/geoip",
|
||||
"media:/media",
|
||||
"/var/run/docker.sock:/var/run/docker.sock",
|
||||
]
|
||||
env_file = [".env"]
|
||||
|
@ -46,7 +53,7 @@ image = "maxmindinc/geoipupdate"
|
|||
container_name = "authentik-geoipupdate"
|
||||
restart = "unless-stopped"
|
||||
networks = ["authentik"]
|
||||
volumes = ["/docker/authentik/geoip:/usr/share/GeoIP"]
|
||||
volumes = ["geoip:/usr/share/GeoIP"]
|
||||
env_file = [".env"]
|
||||
|
||||
[services.geoipupdate.environment]
|
||||
|
|
|
@ -1,14 +1,20 @@
|
|||
[volumes]
|
||||
data = {}
|
||||
config = {}
|
||||
|
||||
[volumes.nextcloud_config]
|
||||
external = true
|
||||
|
||||
[services.caddy]
|
||||
image = "slothcroissant/caddy-cloudflaredns"
|
||||
container_name = "caddy"
|
||||
restart = "unless-stopped"
|
||||
user = "82:82"
|
||||
ports = ["80:80", "443:443/tcp", "443:443/udp"]
|
||||
networks = ["proxy"]
|
||||
volumes = [
|
||||
"/docker/caddy/data:/data",
|
||||
"/docker/caddy/config:/config",
|
||||
"/docker/nextcloud:/var/www/nextcloud",
|
||||
"data:/data",
|
||||
"config:/config",
|
||||
"nextcloud_config:/var/www/nextcloud",
|
||||
"/var/www/korhonen.cc:/var/www/korhonen.cc",
|
||||
"/var/www/wkd:/var/www/wkd",
|
||||
"/var/www/index.korhonen.cc:/var/www/index.korhonen.cc",
|
||||
|
|
|
@ -4,5 +4,5 @@ container_name = "cloudflare-ddns"
|
|||
security_opt = ["no-new-privileges:true"]
|
||||
network_mode = "host"
|
||||
environment = ["PUID=1000", "PGID=1000"]
|
||||
volumes = ["/docker/ddns/config.json:/config.json"]
|
||||
volumes = ["/mnt/Storage/docker/ddns/config.json:/config.json"]
|
||||
restart = "unless-stopped"
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
#:schema https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json
|
||||
[volumes]
|
||||
files = {}
|
||||
config = {}
|
||||
redis = {}
|
||||
sonic = {}
|
||||
|
||||
[services.firefish]
|
||||
image = "registry.firefish.dev/firefish/firefish"
|
||||
|
@ -9,8 +13,8 @@ ports = ["3083:3000"]
|
|||
networks = ["firefish", "proxy", "postgres"]
|
||||
environment = { NODE_ENV = "production" }
|
||||
volumes = [
|
||||
"/docker/firefish/files:/firefish/files",
|
||||
"/docker/firefish/config:/firefish/.config:ro",
|
||||
"files:/firefish/files",
|
||||
"config:/firefish/.config:ro",
|
||||
]
|
||||
|
||||
[services.redis]
|
||||
|
@ -18,7 +22,7 @@ image = "redis"
|
|||
container_name = "redis-firefish"
|
||||
restart = "unless-stopped"
|
||||
networks = ["firefish"]
|
||||
volumes = ["/docker/firefish/redis:/data"]
|
||||
volumes = ["redis:/data"]
|
||||
|
||||
[services.sonic]
|
||||
image = "valeriansaliou/sonic:v1.4.0"
|
||||
|
@ -26,8 +30,8 @@ container_name = "sonic-firefish"
|
|||
logging = { driver = "none" }
|
||||
networks = ["firefish"]
|
||||
volumes = [
|
||||
"/docker/firefish/sonic:/var/lib/sonic/store",
|
||||
"/docker/firefish/sonic/config.cfg:/etc/sonic.cfg",
|
||||
"sonic:/var/lib/sonic/store",
|
||||
"/mnt/Storage/docker/firefish-sonic/config.cfg:/etc/sonic.cfg",
|
||||
]
|
||||
env_file = ".env"
|
||||
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
[volumes]
|
||||
data = {}
|
||||
|
||||
[services.forgejo]
|
||||
image = "git.korhonen.cc/functionalhacker/forgejo-asciidoc"
|
||||
container_name = "forgejo"
|
||||
environment = ["TZ=Europe/Helsinki", "USER_UID=1000", "USER_GID=1000"]
|
||||
environment = ["TZ=Europe/Helsinki"]
|
||||
restart = "unless-stopped"
|
||||
networks = ["postgres", "proxy"]
|
||||
ports = ["22:22"]
|
||||
volumes = ["/docker/forgejo:/data", "/etc/localtime:/etc/localtime:ro"]
|
||||
volumes = ["data:/data", "/etc/localtime:/etc/localtime:ro"]
|
||||
|
||||
[networks.postgres]
|
||||
external = true
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
[volumes]
|
||||
config = {}
|
||||
|
||||
[services.freshrss]
|
||||
image = "linuxserver/freshrss"
|
||||
container_name = "freshrss"
|
||||
restart = "unless-stopped"
|
||||
networks = ["freshrss", "postgres", "proxy"]
|
||||
environment = ["PUID=1000", "PGID=985", "TZ=Europe/Helsinki"]
|
||||
volumes = [
|
||||
"/docker/freshrss/freshrss:/config",
|
||||
"/etc/localtime:/etc/localtime:ro",
|
||||
]
|
||||
volumes = ["config:/config", "/etc/localtime:/etc/localtime:ro"]
|
||||
|
||||
[networks.freshrss]
|
||||
external = false
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
[volumes]
|
||||
config = {}
|
||||
data = {}
|
||||
|
||||
[services.headscale]
|
||||
image = "headscale/headscale"
|
||||
image = "headscale/headscale:0"
|
||||
container_name = "headscale"
|
||||
volumes = [
|
||||
"/docker/headscale/config:/etc/headscale/",
|
||||
"/docker/headscale/data:/var/lib/headscale",
|
||||
]
|
||||
volumes = ["config:/etc/headscale", "data:/var/lib/headscale"]
|
||||
ports = ["3478:3478/udp"]
|
||||
command = "headscale serve"
|
||||
restart = "unless-stopped"
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
[volumes]
|
||||
hass = {}
|
||||
rhasspy = {}
|
||||
mosquitto = {}
|
||||
|
||||
[services.home-assistant]
|
||||
container_name = "home-assistant"
|
||||
image = "homeassistant/home-assistant"
|
||||
environment = ["TZ=Europe/Helsinki"]
|
||||
devices = ["/dev/ttyACM0"]
|
||||
volumes = [
|
||||
"/docker/homeautomation/home-assistant:/config",
|
||||
"/etc/localtime:/etc/localtime:ro",
|
||||
]
|
||||
volumes = ["hass:/config", "/etc/localtime:/etc/localtime:ro"]
|
||||
restart = "unless-stopped"
|
||||
networks = ["homeautomation", "postgres", "proxy"]
|
||||
ports = ["8123:8123", "8300:8300"]
|
||||
|
@ -20,7 +22,7 @@ environment = ["TZ=Europe/Helsinki"]
|
|||
ports = ["1883:1883", "8866:8866"]
|
||||
networks = ["homeautomation"]
|
||||
volumes = [
|
||||
"/docker/homeautomation/mosquitto:/mosquitto",
|
||||
"mosquitto:/mosquitto",
|
||||
"/etc/localtime:/etc/localtime:ro",
|
||||
]
|
||||
restart = "unless-stopped"
|
||||
|
@ -29,7 +31,7 @@ restart = "unless-stopped"
|
|||
container_name = "rhasspy"
|
||||
image = "rhasspy/rhasspy"
|
||||
command = "--profile en --user-profiles /profiles"
|
||||
volumes = ["/docker/homeautomation/rhasspy:/profiles"]
|
||||
volumes = ["rhasspy:/profiles"]
|
||||
environment = ["TZ=Europe/Helsinki"]
|
||||
ports = ["12101:12101"]
|
||||
networks = ["homeautomation"]
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
[volumes]
|
||||
config = {}
|
||||
cache = {}
|
||||
|
||||
[volumes.media]
|
||||
external = true
|
||||
|
||||
[volumes.nextcloud_data]
|
||||
external = true
|
||||
|
||||
[services.jellyfin]
|
||||
image = "jellyfin/jellyfin"
|
||||
container_name = "jellyfin"
|
||||
|
@ -6,10 +16,10 @@ ports = ["8096:8096"]
|
|||
networks = ["proxy", "authentik"]
|
||||
restart = "unless-stopped"
|
||||
volumes = [
|
||||
"/docker/jellyfin/config:/config",
|
||||
"/docker/jellyfin/cache:/cache",
|
||||
"/mnt/Storage/Media:/media",
|
||||
"/mnt/Storage/Nextcloud/FunctionalHacker/files/Media/Music:/media/Music",
|
||||
"config:/config",
|
||||
"cache:/cache",
|
||||
"media:/media",
|
||||
"/mnt/Storage/docker/volumes/nextcloud_data/FunctionalHacker/files/Media/Music:/media/Music",
|
||||
"/etc/localtime:/etc/localtime:ro",
|
||||
]
|
||||
devices = [
|
||||
|
|
33
docker/jellyfin/docker-compose.yaml
Normal file
33
docker/jellyfin/docker-compose.yaml
Normal file
|
@ -0,0 +1,33 @@
|
|||
volumes:
|
||||
config: {}
|
||||
cache: {}
|
||||
media:
|
||||
external: true
|
||||
nextcloud_data:
|
||||
external: true
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin
|
||||
container_name: jellyfin
|
||||
environment:
|
||||
- TZ=Europe/Helsinki
|
||||
ports:
|
||||
- 8096:8096
|
||||
networks:
|
||||
- proxy
|
||||
- authentik
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- config:/config
|
||||
- cache:/cache
|
||||
- media:/media
|
||||
- /mnt/Storage/docker/nextcloud_data/FunctionalHacker/files/Media/Music:/media/Music
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
devices:
|
||||
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||
- /dev/dri/card1:/dev/dri/card0
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
authentik:
|
||||
external: true
|
|
@ -1,10 +1,10 @@
|
|||
[services]
|
||||
[volumes]
|
||||
config = {}
|
||||
|
||||
[services.mumble]
|
||||
container_name = "mumble"
|
||||
image = "phlak/mumble"
|
||||
user = "1000:985"
|
||||
environment = ["TZ=Europe/Helsinki"]
|
||||
network_mode = "host"
|
||||
volumes = ["/docker/mumble:/etc/mumble", "/etc/localtime:/etc/localtime:ro"]
|
||||
volumes = ["config:/etc/mumble", "/etc/localtime:/etc/localtime:ro"]
|
||||
restart = "unless-stopped"
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
[volumes.nextcloud_config]
|
||||
external = true
|
||||
|
||||
[volumes.nextcloud_data]
|
||||
external = true
|
||||
|
||||
[services.nextcloud]
|
||||
image = "nextcloud:fpm-alpine"
|
||||
container_name = "nextcloud"
|
||||
restart = "unless-stopped"
|
||||
user = "82:82"
|
||||
networks = ["nextcloud", "postgres", "proxy"]
|
||||
volumes = [
|
||||
"/docker/nextcloud:/var/www/html:z",
|
||||
"/mnt/Storage/Nextcloud:/var/www/html/data",
|
||||
"nextcloud_config:/var/www/html",
|
||||
"nextcloud_data:/var/www/html/data",
|
||||
"/etc/localtime:/etc/localtime:ro",
|
||||
]
|
||||
environment = [
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
[services]
|
||||
[volumes]
|
||||
config = {}
|
||||
dnsmasq = {}
|
||||
|
||||
[services.pihole]
|
||||
container_name = "pihole"
|
||||
|
@ -6,8 +8,8 @@ image = "pihole/pihole"
|
|||
ports = ["53:53/tcp", "53:53/udp", "67:67/udp", "8069:80/tcp"]
|
||||
networks = ["proxy"]
|
||||
volumes = [
|
||||
"/docker/pihole/pihole:/etc/pihole/",
|
||||
"/docker/pihole/dnsmasq:/etc/dnsmasq.d/",
|
||||
"config:/etc/pihole/",
|
||||
"dnsmasq:/etc/dnsmasq.d/",
|
||||
]
|
||||
dns = ["127.0.0.1", "1.1.1.1"]
|
||||
cap_add = ["NET_ADMIN"]
|
||||
|
@ -17,7 +19,5 @@ restart = "unless-stopped"
|
|||
TZ = "Europe/Helsinki"
|
||||
WEBPASSWORD = "${WEBPASSWORD}"
|
||||
|
||||
[networks]
|
||||
|
||||
[networks.proxy]
|
||||
external = true
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
[volumes]
|
||||
data = {}
|
||||
|
||||
[services.postgres]
|
||||
container_name = "postgres"
|
||||
image = "postgres:16"
|
||||
|
@ -5,7 +8,7 @@ environment = ["TZ=Europe/Helsinki"]
|
|||
ports = ["127.0.0.1:5432:5432"]
|
||||
networks = ["postgres"]
|
||||
volumes = [
|
||||
"/docker/postgres:/var/lib/postgresql/data",
|
||||
"data:/var/lib/postgresql/data",
|
||||
"/etc/localtime:/etc/localtime:ro",
|
||||
]
|
||||
restart = "unless-stopped"
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
[volumes]
|
||||
config = {}
|
||||
|
||||
[services.searx]
|
||||
container_name = "searx"
|
||||
image = "searxng/searxng"
|
||||
restart = "unless-stopped"
|
||||
networks = ["searx", "proxy"]
|
||||
volumes = [
|
||||
"/docker/searx:/etc/searxng",
|
||||
"config:/etc/searxng",
|
||||
#"/docker/searx/logo.png:/usr/local/searxng/searx/static/themes/simple/img/searxng.png:ro"
|
||||
]
|
||||
environment = ["SEARXNG_BASE_URL=https://search.korhonen.cc/"]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[services.grafana]
|
||||
image = "grafana/grafana"
|
||||
container_name = "grafana"
|
||||
volumes = ["/docker/stats/grafana:/var/lib/grafana"]
|
||||
volumes = ["grafana:/var/lib/grafana"]
|
||||
networks = ["stats", "proxy"]
|
||||
user = "1000:984"
|
||||
env_file = [".env"]
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
[volumes]
|
||||
config = {}
|
||||
picons = {}
|
||||
|
||||
[services.tvheadend]
|
||||
image = "linuxserver/tvheadend"
|
||||
container_name = "tvheadend"
|
||||
environment = ["TZ=Europe/Helsinki", "PUID=1000", "PGID=985"]
|
||||
volumes = [
|
||||
"/docker/tvheadend:/config",
|
||||
"config:/config",
|
||||
"picons:/picons",
|
||||
"/mnt/Storage/Media/PVR:/recordings",
|
||||
"/mnt/Storage/picons:/picons",
|
||||
"/etc/localtime:/etc/localtime:ro",
|
||||
]
|
||||
ports = ["9981:9981", "9982:9982"]
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
[volumes]
|
||||
data = {}
|
||||
|
||||
[services.woodpecker]
|
||||
image = "woodpeckerci/woodpecker-server"
|
||||
container_name = "woodpecker"
|
||||
restart = "unless-stopped"
|
||||
volumes = ["/docker/woodpecker/:/var/lib/woodpecker/"]
|
||||
volumes = ["data:/var/lib/woodpecker"]
|
||||
env_file = [".env"]
|
||||
environment = [
|
||||
"WOODPECKER_OPEN=true",
|
||||
|
@ -24,10 +27,7 @@ restart = "unless-stopped"
|
|||
depends_on = ["woodpecker"]
|
||||
volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
|
||||
env_file = [".env"]
|
||||
environment = [
|
||||
"WOODPECKER_SERVER=woodpecker:9000",
|
||||
"WOODPECKER_AGENT_SECRET",
|
||||
]
|
||||
environment = ["WOODPECKER_SERVER=woodpecker:9000", "WOODPECKER_AGENT_SECRET"]
|
||||
|
||||
[networks.proxy]
|
||||
external = true
|
||||
|
|
Loading…
Reference in a new issue