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