docker - 如何修复 gitlab-ci 中的“sqlite3.OperationalError:无法打开数据库文件”错误?
问题描述
当我尝试go test
在 gitlab-ci 中运行一些 google-app-engine 命令时,所有测试都会失败。
我已经在本地机器和本地 docker 容器中执行了这些测试,它们运行良好。但是他们在 gitlab-ci 中失败了。我认为这是因为 gitlab 运行器内部的数据存储文件权限而发生的,但我不知道如何修复它们,因为我需要访问 gitlab 容器!已附上 gitlab-ci 配置和错误消息以供您调查。
variables:
GO_PROJECT: github.com/auteurly
stages:
- test
go_test:
image: mercari/appengine-go:latest
before_script:
- mkdir -p ${GOPATH}/src/${GO_PROJECT}
- cp -r ${CI_PROJECT_DIR}/* ${GOPATH}/src/${GO_PROJECT}/
- go get -v github.com/auteurly/...
- cd ${GOPATH}/src/${GO_PROJECT}/app_engine/
stage: test
script:
- go test
INFO 2019-10-28 08:48:58,201 devappserver2.py:278] Skipping SDK update check.
WARNING 2019-10-28 08:48:58,201 devappserver2.py:294] DEFAULT_VERSION_HOSTNAME will not be set correctly with --port=0
Traceback (most recent call last):
File "/usr/lib/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 96, in <module>
_run_file(__file__, globals())
File "/usr/lib/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 90, in _run_file
execfile(_PATHS.script_file(script_name), globals_)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 600, in <module>
main()
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 588, in main
dev_server.start(options)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 355, in start
configuration.modules[0].application_root)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 654, in create_api_server
if options.support_datastore_emulator else None)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/stub_util.py", line 201, in setup_stubs
consistency_policy=datastore_consistency))
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_sqlite_stub.py", line 618, in __init__
factory=sql_conn)
sqlite3.OperationalError: unable to open database file
INFO 2019-10-28 08:49:13,271 devappserver2.py:278] Skipping SDK update check.
WARNING 2019-10-28 08:49:13,271 devappserver2.py:294] DEFAULT_VERSION_HOSTNAME will not be set correctly with --port=0
Traceback (most recent call last):
File "/usr/lib/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 96, in <module>
_run_file(__file__, globals())
File "/usr/lib/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 90, in _run_file
execfile(_PATHS.script_file(script_name), globals_)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 600, in <module>
main()
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 588, in main
dev_server.start(options)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 355, in start
configuration.modules[0].application_root)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 654, in create_api_server
if options.support_datastore_emulator else None)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/stub_util.py", line 201, in setup_stubs
consistency_policy=datastore_consistency))
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_sqlite_stub.py", line 618, in __init__
factory=sql_conn)
sqlite3.OperationalError: unable to open database file
我希望通过测试,但上述错误消息将显示在日志中。
解决方案
推荐阅读
- java - Android Studio:我的应用程序正在重新启动,但没有错误
- azure - 在 Snow Flake 中调用 Rest API
- javascript - 大多数论坛网站建立在什么基础上?动态网站还是静态网站?
- python - 跨轴的numpy进程
- node.js - 如何同时运行 mocha 和 node
- python - 难以使用适用于 x86 和 armv7 的 struct.pack 格式
- python - ValueError:无法将字符串转换为浮点数:'01-01-20 0:15'
- highcharts - Highcharts - Highstock 图表在悬停数据点上显示双线以显示工具提示
- sql - 给所有月份的数字,这些数字在我的数据库中作为字符串,当用户选择任何月份时,下一行将自动填充
- c# - 如何使用 C# MongoDb 驱动程序更新深度嵌套数组中的“类型安全”字段?