This commit is contained in:
Your Name 2025-05-03 19:36:33 +12:00
parent 5909c90941
commit 2fbe5307da
5 changed files with 27 additions and 21 deletions

View File

@ -27,7 +27,7 @@ else
fi fi
# check if curl, wget, bash installed, and install if not # check if curl, wget, bash installed, and install if not
PREREQUISITES=("curl" "wget") PREREQUISITES=("curl" "wget" "jq")
# check if all prerequisites are installed # check if all prerequisites are installed
ALLINSTALLED=true ALLINSTALLED=true

View File

@ -1,7 +1,4 @@
HOST_PORT=8123 # note the port and write tokens are not set here, they are set in the sos_config.json file.
CONTAINER_NAME="simple-object-storage" CONTAINER_NAME="simple-object-storage"
VOLUME_NAME="simple-object-storage" VOLUME_NAME="simple-object-storage"
WRITE_TOKENS="fizzle1,fizzle2,fizzle3"

View File

@ -0,0 +1,8 @@
{
"write_tokens": [
"fizzle1",
"fizzle2",
"fizzle3"
],
"port": 8123
}

View File

@ -10,4 +10,17 @@ source "$(dirname "$0")/_common.sh"
# Required environment variables # Required environment variables
# check_required_env_vars "HOST_PORT" # check_required_env_vars "HOST_PORT"
echo $HOST_PORT # check if jq is installed
if ! command -v jq &> /dev/null; then
die "jq could not be found, please install it"
fi
# check if sos_config.json exists
if [ ! -f "${CONFIG_PATH}/sos_config.json" ]; then
die "sos_config.json does not exist"
fi
# extract port from sos_config.json
PORT=$(jq -r '.port' "${CONFIG_PATH}/sos_config.json")
echo $PORT

View File

@ -6,32 +6,20 @@
# It is called with the path to the server specific env file as an argument. # It is called with the path to the server specific env file as an argument.
source "$(dirname "$0")/_common.sh" source "$(dirname "$0")/_common.sh"
check_required_env_vars "CONTAINER_NAME" "HOST_PORT" "VOLUME_NAME" "WRITE_TOKENS" check_required_env_vars "CONTAINER_NAME" "HOST_PORT" "VOLUME_NAME" "WRITE_TOKENS" "CONFIG_PATH"
# check volume exists. # check volume exists.
if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then
die "Docker volume ${VOLUME_NAME} does not exist" die "Docker volume ${VOLUME_NAME} does not exist"
fi fi
# heredoc for config file. Have to use double quotes to substitute variables.
docker run --rm -v ${VOLUME_NAME}:/data debian bash -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 \ DOCKER_RUN_CMD="docker run -d \
--restart unless-stopped \ --restart unless-stopped \
--name ${CONTAINER_NAME} \ --name ${CONTAINER_NAME} \
-p ${HOST_PORT}:80 \ -p ${HOST_PORT}:80 \
-v ${VOLUME_NAME}:/data \ -v ${VOLUME_NAME}:/data/storage \
-v ${CONFIG_PATH}/sos_config.json:/data/sos_config.json:ro \
${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}" ${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}"