40 lines
1.5 KiB
Bash
40 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
## This block checks all loaded (running or stopped) containers for nas-dependent mounts and adds them (by container name) to the NAS_DEPENDENTS variable.
|
|
# NAS_DEPENDENTS=""
|
|
# for CONTAINER_ID in $(docker ps -aq) # get list of all loaded containers (running and stopped)
|
|
# do
|
|
# CONTAINER_NAME=$(docker ps -aq --filter "id=$CONTAINER_ID" --format '{{.Names}}') # get the container's name
|
|
# CONTAINER_MOUNTS=$(docker inspect --format '{{range .Mounts}}{{println .Source}}{{end}}' $CONTAINER_ID) # print the container's volume mounts
|
|
# echo "$CONTAINER_MOUNTS" | grep -q /mnt/nas
|
|
# MATCH=$?
|
|
# if [ $MATCH == 0 ]; then
|
|
# NAS_DEPENDENTS+="$CONTAINER_NAME\n"
|
|
# fi
|
|
# done
|
|
##
|
|
|
|
## This block checks all projects within the ~/homelab/server/config directory for NAS-dependence
|
|
NAS_DEPENDENTS=""
|
|
for project in $(find ~/homelab/server/config -maxdepth 1 -mindepth 1 -path ~/homelab/server/config/minecraft -prune -o -print | cut -d "/" -f7)
|
|
do
|
|
echo "======== CHECKING $project ========"
|
|
cd ~/homelab/server/config/$project
|
|
docker-compose config | grep -q /mnt/nas
|
|
MATCH=$?
|
|
if [ $MATCH == 0 ]; then
|
|
NAS_DEPENDENTS+="$project\n"
|
|
fi
|
|
done
|
|
|
|
echo -e "$NAS_DEPENDENTS"
|
|
|
|
## This block runs docker-compose down for
|
|
## all projects found by the previous block
|
|
|
|
for project in $(echo -e "$NAS_DEPENDENTS")
|
|
do
|
|
echo "======== STARTING UP $project ========"
|
|
cd ~/homelab/server/config/$project
|
|
docker-compose up -d
|
|
done |