1
0
Fork 0
mirror of https://github.com/overleaf/toolkit.git synced 2025-04-19 15:28:06 +02:00

Change how we load rc vars

This commit is contained in:
Shane Kilkelly 2020-07-09 11:09:09 +01:00
parent 786244e945
commit 919bc177aa
6 changed files with 35 additions and 47 deletions

View file

@ -9,24 +9,19 @@ function __main__() {
MONGO_IMAGE="mongo:3.6"
REDIS_IMAGE="redis:5.0.0"
# Load vars from the rc file, prefixed with 'RC_ '
# Load vars from the rc file
# shellcheck disable=SC1090
source <(
grep -v '^#' "$RC_FILE" | # remove lines starting with '#'
grep . | # remove blank lines
grep -E '^[A-Z_]+=' | # filter down to variable assignments
awk '{print "RC_" $0}' # prefix with 'RC_'
)
source "$RC_FILE"
# Select which docker-compose files to load
compose_file_flags=("-f ./lib/docker-compose.base.yml")
if [[ "$RC_REDIS_ENABLED" == "true" ]]; then
if [[ "$REDIS_ENABLED" == "true" ]]; then
compose_file_flags+=("-f ./lib/docker-compose.redis.yml")
fi
if [[ "$RC_MONGO_ENABLED" == "true" ]]; then
if [[ "$MONGO_ENABLED" == "true" ]]; then
compose_file_flags+=("-f ./lib/docker-compose.mongo.yml")
fi
if [[ "$RC_SIBLING_CONTAINERS_ENABLED" == "true" ]]; then
if [[ "$SIBLING_CONTAINERS_ENABLED" == "true" ]]; then
compose_file_flags+=("-f ./lib/docker-compose.sibling-containers.yml")
fi
@ -36,27 +31,25 @@ function __main__() {
fi
# Build up the flags to pass to docker-compose
project_name="${RC_PROJECT_NAME:-overleaf}"
project_name="${PROJECT_NAME:-overleaf}"
image_name="sharelatex/sharelatex"
if [[ "${RC_SERVER_PRO:-null}" == "true" ]]; then
if [[ "${SERVER_PRO:-null}" == "true" ]]; then
image_name="quay.io/sharelatex/sharelatex-pro"
fi
full_image_spec="$image_name:$SHARELATEX_IMAGE_VERSION"
# Canonicalize data paths
RC_SHARELATEX_DATA_PATH=$(cd config; realpath "$RC_SHARELATEX_DATA_PATH")
RC_MONGO_DATA_PATH=$(cd config; realpath "$RC_MONGO_DATA_PATH")
RC_REDIS_DATA_PATH=$(cd config; realpath "$RC_REDIS_DATA_PATH")
SHARELATEX_DATA_PATH=$(cd config; realpath "$SHARELATEX_DATA_PATH")
MONGO_DATA_PATH=$(cd config; realpath "$MONGO_DATA_PATH")
REDIS_DATA_PATH=$(cd config; realpath "$REDIS_DATA_PATH")
# Print debug info
if [[ "${RC_DEBUG:-null}" != "null" ]]; then
echo ">>>>>>VARS>>>>>>"
echo "$(set -o posix; set | grep ^RC_)"
echo "$(set -o posix; set)" # print all vars
echo "IMAGE_VERSION=$SHARELATEX_IMAGE_VERSION"
echo "MONGO_IMAGE=$MONGO_IMAGE"
echo "REDIS_IMAGE=$REDIS_IMAGE"
echo "<<<<<<<<<<<<<<<<"
echo ">>>>COMPOSE-ARGS>>>>"
echo "-p $project_name"
@ -66,15 +59,15 @@ function __main__() {
fi
# Export vars for use in docker-compose files
export RC_IMAGE="$full_image_spec"
export RC_SHARELATEX_DATA_PATH
export RC_DOCKER_SOCKET_PATH
export RC_MONGO_IMAGE="$MONGO_IMAGE"
export RC_MONGO_DATA_PATH
export RC_REDIS_IMAGE="$REDIS_IMAGE"
export RC_REDIS_DATA_PATH
export IMAGE="$full_image_spec"
export SHARELATEX_DATA_PATH
export DOCKER_SOCKET_PATH
export MONGO_IMAGE
export MONGO_DATA_PATH
export REDIS_IMAGE
export REDIS_DATA_PATH
echo ">> Running with sharelatex-image=$RC_IMAGE"
echo ">> Running with sharelatex-image=$IMAGE"
# shellcheck disable=SC2068
exec docker-compose -p "$project_name" ${compose_file_flags[@]} "$@"

View file

@ -135,24 +135,19 @@ function check_config_files() {
# If this is the RC file, print additional info
if [[ "$config_file" == "config/overleaf.rc" ]]; then
print_point 1 "values"
# Load vars from the rc file, prefixed with 'RC_ '
# Load vars from the rc file
# shellcheck disable=SC1090
source <(
grep -v '^#' "$config_file" | # remove lines starting with '#'
grep . | # remove blank lines
grep -E '^[A-Z_]+=' | # filter down to variable assignments
awk '{print "RC_" $0}' # prefix with 'RC_'
)
source "$config_file"
# Check some vars from the RC file
if [[ "${RC_SHARELATEX_DATA_PATH:-null}" != "null" ]]; then
print_point 2 "SHARELATEX_DATA_PATH: $RC_SHARELATEX_DATA_PATH"
if [[ "${SHARELATEX_DATA_PATH:-null}" != "null" ]]; then
print_point 2 "SHARELATEX_DATA_PATH: $SHARELATEX_DATA_PATH"
else
print_point 2 "SHARELATEX_DATA_PATH: MISSING !"
add_warning "rc file, SHARELATEX_DATA_PATH not set"
fi
print_point 2 "SERVER_PRO: $RC_SERVER_PRO"
print_point 2 "MONGO_ENABLED: $RC_MONGO_ENABLED"
print_point 2 "REDIS_ENABLED: $RC_REDIS_ENABLED"
print_point 2 "SERVER_PRO: $SERVER_PRO"
print_point 2 "MONGO_ENABLED: $MONGO_ENABLED"
print_point 2 "REDIS_ENABLED: $REDIS_ENABLED"
fi
fi
done

View file

@ -4,10 +4,10 @@ services:
sharelatex:
restart: always
image: "${RC_IMAGE}"
image: "${IMAGE}"
container_name: sharelatex
volumes:
- "${RC_SHARELATEX_DATA_PATH}:/var/lib/sharelatex"
- "${SHARELATEX_DATA_PATH}:/var/lib/sharelatex"
ports:
- 80:80
env_file: ../config/variables.env

View file

@ -4,10 +4,10 @@ services:
mongo:
restart: always
image: "${RC_MONGO_IMAGE}"
image: "${MONGO_IMAGE}"
container_name: mongo
volumes:
- "${RC_MONGO_DATA_PATH}:/data/db"
- "${MONGO_DATA_PATH}:/data/db"
expose:
- 27017
healthcheck:

View file

@ -4,9 +4,9 @@ services:
redis:
restart: always
image: "${RC_REDIS_IMAGE}"
image: "${REDIS_IMAGE}"
volumes:
- "${RC_REDIS_DATA_PATH}:/data"
- "${REDIS_DATA_PATH}:/data"
container_name: redis
expose:
- 6379

View file

@ -3,10 +3,10 @@ version: '2.2'
services:
sharelatex:
volumes:
- "${RC_DOCKER_SOCKET_PATH}:/var/run/docker.sock"
- "${DOCKER_SOCKET_PATH}:/var/run/docker.sock"
environment:
DOCKER_RUNNER: 'true'
SANDBOXED_COMPILES: 'true'
SANDBOXED_COMPILES_SIBLING_CONTAINERS: 'true'
SANDBOXED_COMPILES_HOST_DIR: "${RC_SHARELATEX_DATA_PATH}/data/compiles"
SYNCTEX_BIN_HOST_PATH: "${RC_SHARELATEX_DATA_PATH}/bin/synctex"
SANDBOXED_COMPILES_HOST_DIR: "${SHARELATEX_DATA_PATH}/data/compiles"
SYNCTEX_BIN_HOST_PATH: "${SHARELATEX_DATA_PATH}/bin/synctex"