mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-14 02:55:41 +00:00
Installer fixes (#3962)
* Switch variable to make it easier to debug Fixes #3933 * rename output file * add setting to directly generate refs * use prod mode * fix check * add debug flags * remove debug marker * pre-safe keys * update installer ref * split installer steps * split steps further * try static adding * remove split key add * try dry rn again * do not dry run keys * fix debian 11 detection * add ci to let install run through * remove flags * remove dryrun * run on master * query api on test * fix missing env * use matmair for tests * use specific version * remove old python first * check python version * add more version checks * multiline marker for action * add option to select python env * set python version before running installer * cleanup script * use inline apt for python install * package 3.9 by default * remove custom python install * add some sleeps * fix package names * reduce double depb definition * set python version * remove 3.9 requirement * do invoke and wheel install in the right context * fix typing for 3.8 * use var for config file if it exsists * fix discovery * use raw output for jq * remove tests * revert change in tasks.py
This commit is contained in:
@ -84,7 +84,7 @@ function detect_envs() {
|
||||
|
||||
echo "# Setting base environment variables"
|
||||
|
||||
export INVENTREE_CONFIG_FILE=${CONF_DIR}/config.yaml
|
||||
export INVENTREE_CONFIG_FILE=${INVENTREE_CONFIG_FILE:-${CONF_DIR}/config.yaml}
|
||||
|
||||
if test -f "${INVENTREE_CONFIG_FILE}"; then
|
||||
echo "# Using existing config file: ${INVENTREE_CONFIG_FILE}"
|
||||
@ -93,22 +93,22 @@ function detect_envs() {
|
||||
pip install jc -q
|
||||
|
||||
# Load config
|
||||
local conf=$(cat ${INVENTREE_CONFIG_FILE} | jc --yaml)
|
||||
local CONF=$(cat ${INVENTREE_CONFIG_FILE} | jc --yaml)
|
||||
|
||||
# Parse the config file
|
||||
export INVENTREE_MEDIA_ROOT=$conf | jq '.[].media_root'
|
||||
export INVENTREE_STATIC_ROOT=$conf | jq '.[].static_root'
|
||||
export INVENTREE_BACKUP_DIR=$conf | jq '.[].backup_dir'
|
||||
export INVENTREE_PLUGINS_ENABLED=$conf | jq '.[].plugins_enabled'
|
||||
export INVENTREE_PLUGIN_FILE=$conf | jq '.[].plugin_file'
|
||||
export INVENTREE_SECRET_KEY_FILE=$conf | jq '.[].secret_key_file'
|
||||
export INVENTREE_MEDIA_ROOT=$(jq -r '.[].media_root' <<< ${CONF})
|
||||
export INVENTREE_STATIC_ROOT=$(jq -r '.[].static_root' <<< ${CONF})
|
||||
export INVENTREE_BACKUP_DIR=$(jq -r '.[].backup_dir' <<< ${CONF})
|
||||
export INVENTREE_PLUGINS_ENABLED=$(jq -r '.[].plugins_enabled' <<< ${CONF})
|
||||
export INVENTREE_PLUGIN_FILE=$(jq -r '.[].plugin_file' <<< ${CONF})
|
||||
export INVENTREE_SECRET_KEY_FILE=$(jq -r '.[].secret_key_file' <<< ${CONF})
|
||||
|
||||
export INVENTREE_DB_ENGINE=$conf | jq '.[].database.ENGINE'
|
||||
export INVENTREE_DB_NAME=$conf | jq '.[].database.NAME'
|
||||
export INVENTREE_DB_USER=$conf | jq '.[].database.USER'
|
||||
export INVENTREE_DB_PASSWORD=$conf | jq '.[].database.PASSWORD'
|
||||
export INVENTREE_DB_HOST=$conf | jq '.[].database.HOST'
|
||||
export INVENTREE_DB_PORT=$conf | jq '.[].database.PORT'
|
||||
export INVENTREE_DB_ENGINE=$(jq -r '.[].database.ENGINE' <<< ${CONF})
|
||||
export INVENTREE_DB_NAME=$(jq -r '.[].database.NAME' <<< ${CONF})
|
||||
export INVENTREE_DB_USER=$(jq -r '.[].database.USER' <<< ${CONF})
|
||||
export INVENTREE_DB_PASSWORD=$(jq -r '.[].database.PASSWORD' <<< ${CONF})
|
||||
export INVENTREE_DB_HOST=$(jq -r '.[].database.HOST' <<< ${CONF})
|
||||
export INVENTREE_DB_PORT=$(jq -r '.[].database.PORT' <<< ${CONF})
|
||||
else
|
||||
echo "# No config file found: ${INVENTREE_CONFIG_FILE}, using envs or defaults"
|
||||
|
||||
@ -160,7 +160,8 @@ function create_initscripts() {
|
||||
echo "# python enviroment already present - skipping"
|
||||
else
|
||||
echo "# Setting up python enviroment"
|
||||
sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && python3 -m venv env && pip install invoke"
|
||||
sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && ${SETUP_PYTHON} -m venv env"
|
||||
sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && env/bin/pip install invoke wheel"
|
||||
|
||||
if [ -n "${SETUP_EXTRA_PIP}" ]; then
|
||||
echo "# Installing extra pip packages"
|
||||
|
@ -11,7 +11,7 @@ PATH=${APP_HOME}/env/bin:${APP_HOME}/:/sbin:/bin:/usr/sbin:/usr/bin:
|
||||
. ${APP_HOME}/contrib/packager.io/functions.sh
|
||||
|
||||
# Envs that should be passed to setup commands
|
||||
export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP
|
||||
export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_BACKUP_DIR,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP,SETUP_PYTHON
|
||||
|
||||
# Get the envs
|
||||
detect_local_env
|
||||
@ -23,8 +23,10 @@ export DATA_DIR=${APP_HOME}/data
|
||||
export SETUP_NGINX_FILE=${SETUP_NGINX_FILE:-/etc/nginx/sites-enabled/inventree.conf}
|
||||
export SETUP_ADMIN_PASSWORD_FILE=${CONF_DIR}/admin_password.txt
|
||||
export SETUP_NO_CALLS=${SETUP_NO_CALLS:-false}
|
||||
export SETUP_PYTHON=${SETUP_PYTHON:-python3}
|
||||
# SETUP_DEBUG can be set to get debug info
|
||||
# SETUP_EXTRA_PIP can be set to install extra pip packages
|
||||
# SETUP_PYTHON can be set to use a different python version
|
||||
|
||||
# get base info
|
||||
detect_envs
|
||||
|
Reference in New Issue
Block a user