This commit is contained in:
Your Name 2025-04-25 11:25:19 +12:00
parent 5e8ec90064
commit 4c0c052f20
16 changed files with 91 additions and 22 deletions

View File

@ -322,9 +322,12 @@ std::vector<int> service_runner::get_ports()
return ports;
}
std::string script_path = mRemote_service_template_path + "/_ports.sh";
// Check if ports script exists
std::string command = "_ports";
if (!template_command_exists(m_service_info.template_name, command)) {
return ports;
}
std::string script_path = mRemote_service_template_path + "/" + command + ".sh";
if (!check_remote_file_exists(script_path)) {
return ports;
}

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME" "LOCAL_DATA_FOLDER"
# Get backup file path from second argument
BACKUP_FILE="$2"
if [ -z "$BACKUP_FILE" ]; then

View File

@ -45,21 +45,24 @@ grey_end() {
}
create_and_start_container() {
if _is_container_exists $CONTAINER_NAME; then
_is_container_running $CONTAINER_NAME && return 0
_start_container $CONTAINER_NAME
local run_cmd="$1"
local container_name="$2"
if _is_container_exists $container_name; then
_is_container_running $container_name && return 0
_start_container $container_name
else
grey_start
$1
$run_cmd
grey_end
fi
if ! _is_container_running $CONTAINER_NAME; then
die "Container ${CONTAINER_NAME} failed to start"
if ! _is_container_running $container_name; then
die "Container ${container_name} failed to start"
fi
ID=$(_get_container_id $CONTAINER_NAME)
echo "Container ${CONTAINER_NAME} is running with ID ${ID}"
ID=$(_get_container_id $container_name)
echo "Container ${container_name} is running with ID ${ID}"
}
function create_folder() {
@ -152,3 +155,11 @@ _get_container_logs() {
docker logs $1
}
check_required_env_vars() {
local required_vars=("$@")
for var in "${required_vars[@]}"; do
if [ -z "${!var}" ]; then
die "Required environment variable $var is not set in your service.env file"
fi
done
}

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG"
# Test Docker
_check_docker_installed || die "Docker test failed, aborting installation..."

View File

@ -2,4 +2,7 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
# check_required_env_vars "HOST_PORT"
# echo $HOST_PORT

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME"
# check if the service is running
_is_container_running $CONTAINER_NAME || die "Service is not running - did not find container $CONTAINER_NAME."

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME"
echo "Container ${CONTAINER_NAME} logs:"
grey_start
docker logs --tail 100 "${CONTAINER_NAME}"

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME" "HOST_PORT" "CONTAINER_PORT" "LOCAL_DATA_FOLDER"
DOCKER_RUN_CMD="docker run -d \
--restart unless-stopped \
--name ${CONTAINER_NAME} \
@ -10,7 +13,7 @@ DOCKER_RUN_CMD="docker run -d \
${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}"
if ! create_and_start_container "$DOCKER_RUN_CMD"; then
if ! create_and_start_container "$DOCKER_RUN_CMD" "$CONTAINER_NAME"; then
die "Failed to start container ${CONTAINER_NAME}"
fi

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME"
_stop_container $CONTAINER_NAME || die "Failed to stop container ${CONTAINER_NAME}"
echo "Container ${CONTAINER_NAME} stopped"

View File

@ -45,21 +45,26 @@ grey_end() {
}
create_and_start_container() {
if _is_container_exists $CONTAINER_NAME; then
_is_container_running $CONTAINER_NAME && return 0
_start_container $CONTAINER_NAME
local run_cmd="$1"
local container_name="$2"
if _is_container_exists $container_name; then
if _is_container_running $container_name; then
return 0
fi
_start_container $container_name
else
grey_start
$1
$run_cmd
grey_end
fi
if ! _is_container_running $CONTAINER_NAME; then
die "Container ${CONTAINER_NAME} failed to start"
if ! _is_container_running $container_name; then
die "Container ${container_name} failed to start"
fi
ID=$(_get_container_id $CONTAINER_NAME)
echo "Container ${CONTAINER_NAME} is running with ID ${ID}"
ID=$(_get_container_id $container_name)
echo "Container ${container_name} is running with ID ${ID}"
}
function create_folder() {
@ -152,3 +157,11 @@ _get_container_logs() {
docker logs $1
}
check_required_env_vars() {
local required_vars=("$@")
for var in "${required_vars[@]}"; do
if [ -z "${!var}" ]; then
die "Required environment variable $var is not set in your service.env file"
fi
done
}

View File

@ -2,15 +2,20 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG"
# Test Docker
_check_docker_installed || die "Docker test failed, aborting installation..."
# check can pull image on remote host and exit if fails
echo "Pulling image ${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}"
docker pull "$IMAGE_REGISTRY/$IMAGE_REPO:$IMAGE_TAG" || die "Failed to pull image $IMAGE_REGISTRY/$IMAGE_REPO:$IMAGE_TAG"
# remove and restart, as the env may have changed.
bash ./stop.sh $1 || die "Failed to stop container ${CONTAINER_NAME}"
echo "Removing old container ${CONTAINER_NAME}"
_remove_container $CONTAINER_NAME || die "Failed to remove container ${CONTAINER_NAME}"
echo "Starting container ${CONTAINER_NAME}"
bash ./start.sh $1 || die "Failed to start container ${CONTAINER_NAME}"
echo "Installation of ${CONTAINER_NAME} complete"

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME"
# check if the service is running
_is_container_running $CONTAINER_NAME || die "Service is not running - did not find container $CONTAINER_NAME."

View File

@ -1,6 +1,8 @@
# Service settings
TEMPLATE=watchtower
CONTAINER_NAME=watchtower
# Image settings
IMAGE_REGISTRY="docker.io"
IMAGE_REPO="containrrr/watchtower"

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME"
echo "Container ${CONTAINER_NAME} logs:"
grey_start
docker logs --tail 100 "${CONTAINER_NAME}"

View File

@ -2,13 +2,18 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME"
DOCKER_RUN_CMD="docker run -d \
--restart unless-stopped \
--name ${CONTAINER_NAME} \
-v /var/run/docker.sock:/var/run/docker.sock \
${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}"
if ! create_and_start_container "$DOCKER_RUN_CMD"; then
if ! create_and_start_container "$DOCKER_RUN_CMD" "$CONTAINER_NAME"; then
echo "RUN_CMD failed:"
echo "$DOCKER_RUN_CMD"
die "Failed to start container ${CONTAINER_NAME}"
fi

View File

@ -2,6 +2,9 @@
source "$(dirname "$0")/_common.sh"
load_env "$1" || die "Failed to load environment variables"
# Required environment variables
check_required_env_vars "CONTAINER_NAME"
_stop_container $CONTAINER_NAME || die "Failed to stop container ${CONTAINER_NAME}"
echo "Container ${CONTAINER_NAME} stopped"