Docker gitlab runner找不到odoo映像的path

使用shell执行器 ,gitlab runner成功通过testing

Running with gitlab-ci-multi-runner 9.1.0 (0118d89) on Runner01 (02cf77da) Using Shell executor... Running on GitlabRunner01... Fetching changes... HEAD is now at c931894 left only attendance view access permissions Checking out d517f932 as develop9... Skipping Git submodules setup $ python -V Python 2.7.12 $ chmod +x tests.sh $ ./tests.sh Testing for modules: 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 Starting tests with the following command: /gitlab-runner/gitlab-runner-server/odoo-bin --addons-path=/gitlab-runner/gitlab-runner-server/addons --log-level error -d testdb --init 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 --test-enable --stop-after-init 2>&1 | tee test_results.log 2017-08-04 13:28:17,387 8280 INFO testdb odoo.sql_db: bad query: INSERT INTO "mail_followers" ("id", "res_model", "partner_id", "res_id", "channel_id") VALUES(nextval('mail_followers_id_seq'), 'mail.channel', 251, 19, 15) RETURNING id 2017-08-04 13:45:45,905 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:45,906 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:45,912 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:45,915 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:45,915 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:45,916 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:45,916 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:45,917 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:45,918 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:48,039 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:48,040 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:48,040 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:48,040 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:48,040 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:48,041 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:48,041 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:48,041 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:49,003 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:49,004 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) 2017-08-04 13:45:49,691 8280 INFO testdb odoo.sql_db: bad query: UPDATE "slide_channel" SET "promoted_slide_id"=1,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) Tests Finished Failure in tests: Cleaning up Deleting Databse Database Deleted Removing log file Log file deleted Clean up finished PASSED Job succeeded 

但是当我执行包含odoo映像的docker时,为什么没有指定gitlab-runnerpath和postgres的问题。 与上面的shell执行程序和相同的path相同的configuration将被执行。 Docker执行程序的日志:

 Running with gitlab-ci-multi-runner 9.4.2 (6d06f2e) on docker (9db168e2) Using Docker executor with image odoo:latest ... Using docker image sha256:b9394e421b2cf440eb0607e38d93d2a1446f2d5057cb51e736aee4f49da81876 for predefined container... Pulling docker image odoo:latest ... Using docker image odoo:latest ID=sha256:15653094bc523040ab938c0712d7a76273c06faf51a7e06a5baf40ef8a132bbc for build container... Running on runner-9db168e2-project-80-concurrent-0 via ujjwal-All-Series... Fetching changes... HEAD is now at 5125285 rm Checking out 51252859 as master... Skipping Git submodules setup $ python -V Python 2.7.9 $ ./tests.sh Testing for modules: 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 Starting tests with the following command: /gitlab-runner/gitlab-runner-server/odoo-bin --addons-path=/gitlab-runner/gitlab-runner-server/addons --log-level error -d testdb --init 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 --test-enable --stop-after-init 2>&1 | tee test_results.log ./tests.sh: line 11: /gitlab-runner/gitlab-runner-server/odoo-bin: No such file or directory Tests Finished Failure in tests: Cleaning up Deleting Databse dropdb: could not connect to database template1: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? Database Deleted Removing log file Log file deleted Clean up finished PASSED Job succeeded 

我的.gitlab-ci.yml文件如下所示:

 before_script: - python -V test: script: - ./tests.sh 

脚本文件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执行者一起运行。 如果有人能提供帮助,请提前致谢。