diff --git a/lib/common.sh b/lib/common.sh index 24a46b9..39529d9 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -6,6 +6,9 @@ set -euo pipefail +# Get the absolute path of the project root (parent of lib/) +readonly PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + readonly DATASTORE_PATH="/srv/datastore/data" readonly FILESTORE_SUBPATH="var/lib/odoo/filestore" @@ -82,15 +85,22 @@ copy_filestore() { echo "Filestore ${from_service}/${from_db} copied to ${to_service}/${to_db}." } +# Workaround: 0k dev-pack's compose script doesn't handle absolute paths correctly. +# It passes HOST_COMPOSE_YML_FILE to the container, which tries to open it directly +# instead of using the mounted path. Using a relative path from PROJECT_ROOT avoids this. +run_compose() { + (cd "$PROJECT_ROOT" && compose -f ./config/compose.yml "$@") +} + exec_python_script_in_odoo_shell() { local service_name="$1" local db_name="$2" local python_script="$3" - compose --debug run "$service_name" shell -d "$db_name" --no-http --stop-after-init < "$python_script" + run_compose --debug run "$service_name" shell -d "$db_name" --no-http --stop-after-init < "$python_script" } -export DATASTORE_PATH FILESTORE_SUBPATH +export PROJECT_ROOT DATASTORE_PATH FILESTORE_SUBPATH export -f log_info log_warn log_error log_step confirm_or_exit export -f check_required_commands -export -f query_postgres_container copy_database copy_filestore exec_python_script_in_odoo_shell +export -f query_postgres_container copy_database copy_filestore run_compose exec_python_script_in_odoo_shell diff --git a/scripts/finalize_db.sh b/scripts/finalize_db.sh index af18bd3..4a99347 100755 --- a/scripts/finalize_db.sh +++ b/scripts/finalize_db.sh @@ -49,4 +49,4 @@ exec_python_script_in_odoo_shell "$DB_NAME" "$DB_NAME" "$PYTHON_SCRIPT" # Launch Odoo with database in finale version to run all updates -compose --debug run "$ODOO_SERVICE" -u all --log-level=debug --stop-after-init --no-http +run_compose --debug run "$ODOO_SERVICE" -u all --log-level=debug --stop-after-init --no-http diff --git a/upgrade.sh b/upgrade.sh index df35c3b..003d358 100755 --- a/upgrade.sh +++ b/upgrade.sh @@ -96,7 +96,7 @@ if docker exec -u 70 "$POSTGRES_SERVICE_NAME" pgm ls | grep -q "$FINALE_SERVICE_ sudo rm -rf "${DATASTORE_PATH}/${FINALE_SERVICE_NAME}/${FILESTORE_SUBPATH}/${FINALE_SERVICE_NAME}" fi -compose --debug run "$FINALE_SERVICE_NAME" -i base --stop-after-init --no-http +run_compose --debug run "$FINALE_SERVICE_NAME" -i base --stop-after-init --no-http log_info "Model database in final Odoo version created." diff --git a/versions/13.0/upgrade.sh b/versions/13.0/upgrade.sh index 07ac661..99d3a05 100755 --- a/versions/13.0/upgrade.sh +++ b/versions/13.0/upgrade.sh @@ -1,4 +1,4 @@ #!/bin/bash set -euo pipefail -compose -f ../../config/compose.yml run -p 8013:8069 ou13 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou13 +run_compose run -p 8013:8069 ou13 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou13 diff --git a/versions/14.0/upgrade.sh b/versions/14.0/upgrade.sh index 0dde9e9..1b954b4 100755 --- a/versions/14.0/upgrade.sh +++ b/versions/14.0/upgrade.sh @@ -1,4 +1,4 @@ #!/bin/bash set -euo pipefail -compose -f ../../config/compose.yml run -p 8014:8069 ou14 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou14 --load=base,web,openupgrade_framework +run_compose run -p 8014:8069 ou14 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou14 --load=base,web,openupgrade_framework diff --git a/versions/15.0/upgrade.sh b/versions/15.0/upgrade.sh index 67989aa..8ddd8f0 100755 --- a/versions/15.0/upgrade.sh +++ b/versions/15.0/upgrade.sh @@ -1,4 +1,4 @@ #!/bin/bash set -euo pipefail -compose -f ../../config/compose.yml run -p 8015:8069 ou15 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou15 --load=base,web,openupgrade_framework +run_compose run -p 8015:8069 ou15 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou15 --load=base,web,openupgrade_framework diff --git a/versions/16.0/upgrade.sh b/versions/16.0/upgrade.sh index 461b5d4..3746ab9 100755 --- a/versions/16.0/upgrade.sh +++ b/versions/16.0/upgrade.sh @@ -1,4 +1,4 @@ #!/bin/bash set -euo pipefail -compose -f ../../config/compose.yml run -p 8016:8069 ou16 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou16 --load=base,web,openupgrade_framework +run_compose run -p 8016:8069 ou16 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou16 --load=base,web,openupgrade_framework diff --git a/versions/17.0/upgrade.sh b/versions/17.0/upgrade.sh index e180ead..05c2309 100755 --- a/versions/17.0/upgrade.sh +++ b/versions/17.0/upgrade.sh @@ -1,4 +1,4 @@ #!/bin/bash set -euo pipefail -compose -f ../../config/compose.yml run -p 8017:8069 ou17 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou17 --load=base,web,openupgrade_framework +run_compose run -p 8017:8069 ou17 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou17 --load=base,web,openupgrade_framework diff --git a/versions/18.0/upgrade.sh b/versions/18.0/upgrade.sh index 9153349..feb022d 100755 --- a/versions/18.0/upgrade.sh +++ b/versions/18.0/upgrade.sh @@ -1,4 +1,4 @@ #!/bin/bash set -euo pipefail -compose -f ../../config/compose.yml run -p 8018:8069 ou18 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou18 --load=base,web,openupgrade_framework +run_compose run -p 8018:8069 ou18 --config=/opt/odoo/auto/odoo.conf --stop-after-init -u all --workers 0 --log-level=debug --max-cron-threads=0 --limit-time-real=10000 --database=ou18 --load=base,web,openupgrade_framework