我在
GitLabs中创建了Pipeline,我使用docker作为gitlab-runner.我想在s3网站上推送Jekyll网站.为此,我使用的是s3_website gem.我的管道中定义了4个阶段.我正在构建Jekyll,使用Gulp创建工件,在我的jekyll网站上执行测试然后部署.
所有步骤都正常,但在进行部署时,我遇到了以下错误.我无法弄清楚如何解决这个问题.
[fail] Could not load the site: Failed to parse ERB in /builds/myproject/s3_website.yml: (SyntaxError) /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_warn.rb:15: Syntax error,unexpected tLABEL module_function define_method(:warn) {|*messages,uplevel: nil|
当我不在Docker上时,它在我的本地机器上运行得非常好.但是当我尝试使用docker做同样的事情时.它给了我上面的错误.
我在我的docker机器上用ruby 2.3,2.4,2.5,2.6尝试过它.但是没有运气.
bundle exec s3_website push
我希望这可以在S3存储桶和相应的cloudfront上部署该站点.
任何线索将不胜感激.
解决方法
我们在CircleCI上遇到了同样的错误.如果我理解正确的话,s3_website gem包含了一个使用JRuby 1.7的Java .jar,并且其中一个必须在Docker镜像或Ruby gems中发生变化,导致它开始继承系统的Ruby 2路径.因此,它的JRuby 1.7尝试加载仅在Ruby 2.0及更高版本中工作的Ruby gem,因此它会遇到错误.
作为一种解决方法,我不是让s3_website gem调用.jar文件本身,而是告诉s3_website gem只下载.jar文件,然后我手动调用它:
bundle exec s3_website install java -cp $(bundle show s3_website)/*.jar s3.website.Push
我在s3_website项目的GitHub页面上的reported this.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。