41 lines
1.3 KiB
Bash
41 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" "VOLUME_NAME" "CONFIG_PATH"
|
|
|
|
# check volume exists.
|
|
if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then
|
|
die "Docker volume ${VOLUME_NAME} does not exist"
|
|
fi
|
|
|
|
# determine port.
|
|
command -v jq &> /dev/null || die "jq could not be found, please install it"
|
|
[ -f "${CONFIG_PATH}/sos_config.json" ] || die "sos_config.json does not exist"
|
|
PORT=$(jq -r '.port' "${CONFIG_PATH}/sos_config.json")
|
|
|
|
|
|
DOCKER_RUN_CMD="docker run -d \
|
|
--restart unless-stopped \
|
|
--name ${CONTAINER_NAME} \
|
|
-p ${PORT}:${PORT} \
|
|
-v ${VOLUME_NAME}:/data/storage \
|
|
-v ${CONFIG_PATH}/sos_config.json:/data/sos_config.json:ro \
|
|
${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"
|