2025-05-03 16:34:54 +12:00

48 lines
1.3 KiB
Bash

#!/bin/bash
# START SCRIPT
# The start script is required for all templates.
# It is used to start the service on the server.
# It is called with the path to the server specific env file as an argument.
source "$(dirname "$0")/_common.sh"
check_required_env_vars "CONTAINER_NAME" "HOST_PORT" "VOLUME_NAME"
# check volume exists.
if ! docker volume ls | grep -q "^${VOLUME_NAME} "; then
die "Docker volume ${VOLUME_NAME} does not exist"
fi
# heredoc for config file. Have to use double quotes to substitute variables.
docker run --rm -v ${VOLUME_NAME}:/data alpine sh -c "\
cat <<EOF > /data/sos_config.json
{
\"write_tokens\": [
${WRITE_TOKENS}
],
\"object_store_path\": \"/data/storage\",
\"host\": \"0.0.0.0\",
\"port\": ${HOST_PORT}
}
EOF
"
DOCKER_RUN_CMD="docker run -d \
--restart unless-stopped \
--name ${CONTAINER_NAME} \
-p ${HOST_PORT}:80 \
-v ${VOLUME_NAME}:/data \
${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}"
if ! create_and_start_container "$DOCKER_RUN_CMD" "$CONTAINER_NAME"; then
die "Failed to start container ${CONTAINER_NAME}"
fi
# Check if the container is running
if ! _is_container_running "$CONTAINER_NAME"; then
die "Container ${CONTAINER_NAME} is not running"
fi
echo "Container ${CONTAINER_NAME} started"