Files
kazewp/lib/docker.sh
T

73 lines
1.9 KiB
Bash

#!/bin/bash
check_container_running() {
docker ps --format '{{.Names}}' | grep -q "^$1$"
return $?
}
create_docker_compose() {
export DOMAIN=$1
export MYSQL_ROOT_PASSWORD=$2
export MYSQL_PASSWORD=$3
envsubst < "${SCRIPT_DIR}/templates/docker-compose.yml.template" > compose.yaml
#envsubst '$DOMAIN $MYSQL_ROOT_PASSWORD $MYSQL_PASSWORD' < "${SCRIPT_DIR}/templates/docker-compose.yml.template" > compose.yaml
}
start_services() {
local FIRST_TIME=$1
local DOMAIN=$2
if [ "$FIRST_TIME" = true ]; then
echo "Starting Caddy server..."
cd "${CADDY_DIR}"
docker compose up -d
if [ $? -ne 0 ]; then
echo -e "${RED}Failed to start Caddy server${NC}"
return 1
fi
else
# Check if Caddy is running and reload configuration
if check_container_running "caddy"; then
reload_caddy
else
echo -e "${RED}Caddy is not running. Please start it first${NC}"
return 1
fi
fi
echo "Starting WordPress for ${DOMAIN}..."
cd "${WORDPRESS_DIR}/${DOMAIN}"
docker compose up -d
if [ $? -ne 0 ]; then
echo -e "${RED}Failed to start WordPress services${NC}"
return 1
fi
return 0
}
get_containers_status() {
local compose_file="$1"
local containers=()
local count=0
while IFS= read -r container; do
# Skip if empty line
[ -z "$container" ] && continue
containers+=("$container")
((count++))
done < <(docker compose -f "$compose_file" ps --status running --format '{{.Name}}')
if [ $count -eq 0 ]; then
echo "Status: No container is running"
else
echo -n "Status: $count containers are running: "
printf "%s" "${containers[0]}"
for ((i=1; i<${#containers[@]}; i++)); do
printf " and %s" "${containers[$i]}"
done
echo
fi
}