61 lines
1.7 KiB
Bash
61 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
#
|
|
# https://www.freecodecamp.org/news/how-to-implement-runtime-environment-variables-with-create-react-app-docker-and-nginx-7f9d42a91d70/
|
|
#
|
|
set -e
|
|
|
|
function check_tactical_ready {
|
|
sleep 15
|
|
until [ -f "${TACTICAL_READY_FILE}" ]; do
|
|
echo "waiting for init container to finish install or update..."
|
|
sleep 10
|
|
done
|
|
}
|
|
|
|
# Recreate js config file on start
|
|
rm -rf ${PUBLIC_DIR}/env-config.js
|
|
touch ${PUBLIC_DIR}/env-config.js
|
|
|
|
nginx_config="$(cat << EOF
|
|
server {
|
|
listen 8080;
|
|
charset utf-8;
|
|
|
|
location / {
|
|
root /usr/share/nginx/html;
|
|
try_files \$uri \$uri/ /index.html;
|
|
add_header Cache-Control "no-store, no-cache, must-revalidate";
|
|
add_header Pragma "no-cache";
|
|
}
|
|
}
|
|
EOF
|
|
)"
|
|
|
|
echo "${nginx_config}" > /etc/nginx/conf.d/default.conf
|
|
|
|
check_tactical_ready
|
|
|
|
URL_PATH="${TACTICAL_DIR}/tmp/web_tar_url"
|
|
AGENT_BASE=$(grep -o 'AGENT_BASE_URL.*' /tmp/settings.py | cut -d'"' -f 2)
|
|
WEB_VERSION=$(grep -o 'WEB_VERSION.*' /tmp/settings.py | cut -d'"' -f 2)
|
|
|
|
# add dynamic web tar if configured
|
|
if [ -f "$URL_PATH" ]; then
|
|
START_STRING=$(head -c ${#AGENT_BASE} "$URL_PATH")
|
|
if [ "$START_STRING" == "${AGENT_BASE}" ]; then
|
|
echo "Attempting to pull dynamic web tar from ${AGENT_BASE}"
|
|
webtar="trmm-web-v${WEB_VERSION}.tar.gz"
|
|
wget -q $(cat "${URL_PATH}") -O /tmp/${webtar}
|
|
tar -xzf /tmp/${webtar} -C /tmp/
|
|
rm -rf ${PUBLIC_DIR}/*
|
|
mv /tmp/dist/* ${PUBLIC_DIR}
|
|
|
|
rm -f /tmp/${webtar}
|
|
rm -rf /tmp/dist
|
|
echo "Success!"
|
|
fi
|
|
fi
|
|
|
|
# Add runtime base url assignment
|
|
echo "window._env_ = {PROD_URL: \"https://${API_HOST}\"}" > ${PUBLIC_DIR}/env-config.js
|
|
chown -R nginx:nginx /etc/nginx && chown -R nginx:nginx ${PUBLIC_DIR} |