adding all my compose files
This commit is contained in:
44
docker_compose/restarter/restart.sh
Normal file
44
docker_compose/restarter/restart.sh
Normal file
@@ -0,0 +1,44 @@
|
||||
RESTARTED_TODAY=false # Flag to track if containers have been restarted today
|
||||
while true; do
|
||||
CURRENT_TIME=$(date +'%H:%M')
|
||||
if [ "$CURRENT_TIME" = '04:00' ]; then
|
||||
if [ "$RESTARTED_TODAY" = false ]; then
|
||||
echo "$(date): It's 04:00. Initiating Docker container restart process..."
|
||||
|
||||
CONTAINER_IDS=$(docker ps -q)
|
||||
|
||||
if [ -z "$CONTAINER_IDS" ]; then
|
||||
echo "$(date): No running Docker containers found to restart."
|
||||
else
|
||||
echo "$(date): Found containers: $CONTAINER_IDS"
|
||||
for CONTAINER_ID in $CONTAINER_IDS; do
|
||||
echo "$(date): Restarting container: ${CONTAINER_ID}"
|
||||
docker restart "${CONTAINER_ID}"
|
||||
# Check if the restart command was successful (optional, but good practice)
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "$(date): Successfully restarted ${CONTAINER_ID}."
|
||||
else
|
||||
echo "$(date): Failed to restart ${CONTAINER_ID}. Continuing to next container."
|
||||
fi
|
||||
echo "$(date): Waiting 10 seconds before next container restart..."
|
||||
sleep 10
|
||||
done
|
||||
echo "$(date): All specified Docker containers have been processed for restart."
|
||||
fi
|
||||
RESTARTED_TODAY=true # Set the flag to true to prevent re-running until next day
|
||||
echo "$(date): Restart cycle for today (04:00) completed."
|
||||
else
|
||||
echo "$(date): It's 04:00, but containers already restarted today. Skipping."
|
||||
fi
|
||||
else
|
||||
# Reset the flag once the time passes 04:00, preparing for the next day's restart
|
||||
if [ "$RESTARTED_TODAY" = true ]; then
|
||||
echo "$(date): Time is no longer 04:00. Resetting restart flag for tomorrow."
|
||||
RESTARTED_TODAY=false
|
||||
fi
|
||||
fi
|
||||
|
||||
# Sleep for a shorter duration (e.g., 30 seconds) to ensure the 04:00 mark is caught reliably,
|
||||
# but not so short as to consume excessive CPU.
|
||||
sleep 30
|
||||
done
|
||||
59
docker_compose/restarter/restarter.yaml
Normal file
59
docker_compose/restarter/restarter.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
################################################################################
|
||||
# For restarts @4am
|
||||
# https://stackoverflow.com/questions/69309747/schedule-daily-docker-container-restart-reset
|
||||
###############################################################################
|
||||
|
||||
version: "3.9"
|
||||
services:
|
||||
restart-er:
|
||||
container_name: restart-er
|
||||
image: docker:cli
|
||||
restart: unless-stopped
|
||||
volumes: ["/var/run/docker.sock:/var/run/docker.sock"]
|
||||
entrypoint: ["/bin/sh","-c"]
|
||||
command:
|
||||
- |
|
||||
RESTARTED_TODAY=false # Flag to track if containers have been restarted today
|
||||
while true; do
|
||||
CURRENT_TIME=$(date +'%H:%M')
|
||||
if [ "$CURRENT_TIME" = '04:00' ]; then
|
||||
if [ "$RESTARTED_TODAY" = false ]; then
|
||||
echo "$(date): It's 04:00. Initiating Docker container restart process..."
|
||||
|
||||
CONTAINER_IDS=$(docker ps -q)
|
||||
|
||||
if [ -z "$CONTAINER_IDS" ]; then
|
||||
echo "$(date): No running Docker containers found to restart."
|
||||
else
|
||||
echo "$(date): Found containers: $CONTAINER_IDS"
|
||||
for CONTAINER_ID in $CONTAINER_IDS; do
|
||||
echo "$(date): Restarting container: ${CONTAINER_ID}"
|
||||
docker restart "${CONTAINER_ID}"
|
||||
# Check if the restart command was successful (optional, but good practice)
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "$(date): Successfully restarted ${CONTAINER_ID}."
|
||||
else
|
||||
echo "$(date): Failed to restart ${CONTAINER_ID}. Continuing to next container."
|
||||
fi
|
||||
echo "$(date): Waiting 10 seconds before next container restart..."
|
||||
sleep 10
|
||||
done
|
||||
echo "$(date): All specified Docker containers have been processed for restart."
|
||||
fi
|
||||
RESTARTED_TODAY=true # Set the flag to true to prevent re-running until next day
|
||||
echo "$(date): Restart cycle for today (04:00) completed."
|
||||
else
|
||||
echo "$(date): It's 04:00, but containers already restarted today. Skipping."
|
||||
fi
|
||||
else
|
||||
# Reset the flag once the time passes 04:00, preparing for the next day's restart
|
||||
if [ "$RESTARTED_TODAY" = true ]; then
|
||||
echo "$(date): Time is no longer 04:00. Resetting restart flag for tomorrow."
|
||||
RESTARTED_TODAY=false
|
||||
fi
|
||||
fi
|
||||
|
||||
# Sleep for a shorter duration (e.g., 30 seconds) to ensure the 04:00 mark is caught reliably,
|
||||
# but not so short as to consume excessive CPU.
|
||||
sleep 30
|
||||
done
|
||||
Reference in New Issue
Block a user