我想为DOCKERIZED ODOO服务器运行一个脚本文件,以运行所有基本模块的自定义模块

时间:2017-08-14 08:03:51

标签: docker openerp odoo-10 docker-image

我在我的Ubuntu中安装了 DOCKER ,并且在Docker中安装了 ODOO 图像,odoo图像在docker上成功运行,但是我无法运行我的测试脚本。

我有自己的脚本文件,指的是运行我的自定义模块和其他具有以下内容的文件:

  

tests.sh

ADDONS_DIR="./addons"
DELETE_DB="dropdb testdb"


MODULE_LIST="hr_contract_leaves,hr_employee_birthdat_reminder,hr_employee_documents,hr_employee_emergency_contract,hr_employee_loan,hr_employee_medical_information,hr_employee_statutory_detail,hr_payslip_reports,hr_recruitment_interviewer,hr_recruitment_job_stage_survey,hr_recruitment_reports,account,account_accountant,board,calendar,contacts,crm,fleet,hr,hr_attendance,hr_expense,hr_holidays,hr_payroll,hr_recruitment,hr_timesheet,im_livechat,lunch,mail,maintenance,mass_mailing,mrp,mrp_repair,note,point_of_sale,project,project_issue,purchase,sale,survey,website,website_blog,website_event,website_forum,website_slides"
echo "Testing for modules: $MODULE_LIST"


RUN_ODOO="/gitlab-runner/gitlab-runner-server/odoo-bin --addons-path=/gitlab-runner/gitlab-runner-server/addons --log-level error -d testdb --init $MODULE_LIST --test-enable --stop-after-init 2>&1 | tee test_results.log"
echo "Starting tests with the following command: $RUN_ODOO"
eval $RUN_ODOO
echo "Tests Finished"

RESULT=$(grep "FAIL\|ERROR" test_results.log)

echo "Failure in tests: $RESULT"

echo "Cleaning up"

echo "Deleting Databse"
eval $DELETE_DB
echo "Database Deleted"

echo "Removing log file"
rm test_results.log
echo "Log file deleted"

echo "Clean up finished"


if [ ! -z "$RESULT" ] 
  then
    echo "Failed"
    exit 1
  else
    echo "PASSED"
    exit 0
fi

拜托,任何人都可以帮助我在docker odoo上运行我的脚本文件,因为我是新手,所以我希望一步一步指导

提前谢谢你......

1 个答案:

答案 0 :(得分:0)

如果您要覆盖图片的默认entrypoint.sh,可以像--entrypoint一样指定docker run选项:

docker run -d --entrypoint=test.sh odoo:10.0

这会导致容器在启动时运行test.sh,而不是默认的entrypoint.sh。不建议这样做,正如您从entrypoint.sh可以看到它支持其他与数据库相关的配置。

如果您的所有test.sh脚本都是添加自己的模块并提供其他选项,您可以:

  1. 覆盖默认的odoo.conf文件,以提供您自己的addons_path
  2. 使用
  3. 挂载自定义插件文件夹
  4. 将选项指定为docker run
  5. 的命令参数

    用这个:

    docker run -p 8069:8069 \
      -v /path/to/your_config_file:/etc/odoo  \
      -v /path/to/your_addons_folder:/mnt/extra-addons \
      --name odoo \
      --link testdb:testdb \
      -t odoo:10.0 --log-level error -d testdb --init $MODULE_LIST --test-enable --stop-after-init
    

    您不必担心指定自己的日志文件,例如test_results.log,因为您可以使用docker logs查看容器日志。