Add caddy-proxy to allow easy access to docker container's caddy executable
Add docker-project-manager.sh which simplifies docker compose up/down usage for projects in /docker
This commit is contained in:
3
caddy-proxy
Executable file
3
caddy-proxy
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2046
|
||||||
|
docker exec -i -w /etc/caddy $(docker ps | grep caddy | awk '{print $1;}') caddy "$@"
|
||||||
80
docker-project-manager.sh
Executable file
80
docker-project-manager.sh
Executable file
@@ -0,0 +1,80 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# filepath: /code/scripts/docker-management/docker-project-manager.sh
|
||||||
|
|
||||||
|
# Initialize variables
|
||||||
|
projects=()
|
||||||
|
action=""
|
||||||
|
pull_images=false
|
||||||
|
|
||||||
|
# Parse command line arguments
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--up|--down|--restart)
|
||||||
|
if [ -n "$action" ]; then
|
||||||
|
echo "Error: Cannot specify multiple actions (--up, --down, --restart)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
action="${1#--}" # Remove leading --
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--pull)
|
||||||
|
pull_images=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--*)
|
||||||
|
echo "Error: Unknown flag '$1'"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Treat anything else as a project name
|
||||||
|
projects+=("$1")
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Validate inputs
|
||||||
|
if [ -z "$action" ]; then
|
||||||
|
echo "Error: Must specify either --up, --down, or --restart"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${#projects[@]} -eq 0 ]; then
|
||||||
|
echo "Error: Must specify at least one project name"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Execute the Docker actions for each project name
|
||||||
|
docker_dir="/docker/"
|
||||||
|
for project_name in "${projects[@]}"; do
|
||||||
|
project_path="${docker_dir}${project_name}"
|
||||||
|
|
||||||
|
if [ ! -d "$project_path" ]; then
|
||||||
|
echo "Error: Project directory '$project_path' not found"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for docker-compose.yml or .yaml
|
||||||
|
if [ ! -f "${project_path}/docker-compose.yml" ] && [ ! -f "${project_path}/docker-compose.yaml" ]; then
|
||||||
|
echo "Error: No docker-compose.yml or docker-compose.yaml found in '$project_path'"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$project_path" || continue
|
||||||
|
|
||||||
|
case "$action" in
|
||||||
|
down|restart)
|
||||||
|
docker compose down --remove-orphans
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$pull_images" = true ]; then
|
||||||
|
docker compose pull
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$action" in
|
||||||
|
up|restart)
|
||||||
|
docker compose up -d
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user