48 lines
1.3 KiB
Bash
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"
|