[FIX] use relative path for compose to avoid 0k dev-pack IOError
The 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. Add run_compose() wrapper that changes to PROJECT_ROOT before calling compose with a relative path, ensuring consistent behavior regardless of the current working directory.
This commit is contained in:
@@ -6,6 +6,9 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
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 DATASTORE_PATH="/srv/datastore/data"
|
||||||
readonly FILESTORE_SUBPATH="var/lib/odoo/filestore"
|
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}."
|
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() {
|
exec_python_script_in_odoo_shell() {
|
||||||
local service_name="$1"
|
local service_name="$1"
|
||||||
local db_name="$2"
|
local db_name="$2"
|
||||||
local python_script="$3"
|
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 log_info log_warn log_error log_step confirm_or_exit
|
||||||
export -f check_required_commands
|
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
|
||||||
|
|||||||
@@ -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
|
# 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
|
||||||
|
|||||||
@@ -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}"
|
sudo rm -rf "${DATASTORE_PATH}/${FINALE_SERVICE_NAME}/${FILESTORE_SUBPATH}/${FINALE_SERVICE_NAME}"
|
||||||
fi
|
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."
|
log_info "Model database in final Odoo version created."
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
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
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
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
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
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
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
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
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
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
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user