我有一个 Ruby 应用程序,它已通过 CircleCI 使用 CodeDeploy 部署到 AWS 实例。我在应用程序中添加了一个 gem。所有测试都在本地和 CircleCI 中通过,但部署阶段失败并出现以下错误:
$ create_application_revision /tmp/codedeploy_applications.json /tmp/codedeploy_revisions.json
create_application_revision loaded: {"applications":[{"application_root":"/","region":"us-west-2","revision_location":{"revisionType":"S3","s3Location":{"bucket":"something","key":"etl-scripts-testdeploy-3a050b1"}},"deployment_group":"EtlScriptsFleet","application_name":"EtlScripts"}]}
Bundling EtlScripts from /home/ubuntu/etl-scripts
Unhandled exception
[Errno 2] No such file or directory: '/home/ubuntu/etl-scripts/vendor/bundle/ruby/2.2.0/gems/regexp-examples-1.1.4/db/unicode_ranges_2.1.pstore'
确实文件不存在。它在本地也不存在,但所有测试都通过。我只是想不通为什么部署过程认为它需要这个文件?
我注意到在这个 gem ( https://github.com/tom-lord/regexp-examples/tree/master/db ) 的源代码中是一个符号链接,这可能就是它没有被创建的原因。但是我仍然对部署捆绑过程如何知道不存在的符号链接感到困惑。
非常感谢任何帮助!