Building website locally with `make jekyll-docker-oneshot` doesn't work
Flagged by @lubianat in #488, who got the error:
Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/main.scss':
Broken pipe
When I try on my own machine (using WSL2 with Docker Desktop for Windows) I get a segmentation fault (it also seemed to interfere with my existing gems that are used for Ruby and Jekyll locally...):
ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [x86_64-linux-musl]
/usr/gem/gems/sass-embedded-1.87.0/ext/sass/embedded_sass_pb.rb:11: [BUG] Segmentation fault at 0x0000000000005400
ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [x86_64-linux-musl]
-- Control frame information -----------------------------------------------
c:0023 p:---- s:0092 e:000091 CFUNC :add_serialized_file
c:0022 p:0037 s:0087 e:000086 TOP /usr/gem/gems/sass-embedded-1.87.0/ext/sass/embedded_sass_pb.rb:11 [FINISH]
c:0021 p:---- s:0082 e:000081 CFUNC :require_relative
c:0020 p:0005 s:0077 e:000076 CLASS /usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded_protocol.rb:6
c:0019 p:0007 s:0074 e:000073 CLASS /usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded_protocol.rb:5
c:0018 p:0007 s:0071 e:000070 TOP /usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded_protocol.rb:3 [FINISH]
c:0017 p:---- s:0068 e:000067 CFUNC :require_relative
c:0016 p:0053 s:0063 e:000062 TOP /usr/gem/gems/sass-embedded-1.87.0/lib/sass/compiler.rb:11 [FINISH]
c:0015 p:---- s:0060 e:000059 CFUNC :require_relative
c:0014 p:0005 s:0055 e:000054 TOP /usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded.rb:3 [FINISH]
c:0013 p:---- s:0052 e:000051 CFUNC :require_relative
c:0012 p:0005 s:0047 e:000046 TOP /usr/gem/gems/sass-embedded-1.87.0/lib/sass-embedded.rb:4 [FINISH]
c:0011 p:---- s:0044 e:000043 CFUNC :require
c:0010 p:0017 s:0039 e:000038 TOP /usr/gem/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:8 [FINISH]
c:0009 p:---- s:0036 e:000035 CFUNC :require
c:0008 p:0011 s:0031 e:000030 TOP /usr/gem/gems/jekyll-sass-converter-3.0.0/lib/jekyll-sass-converter.rb:4 [FINISH]
c:0007 p:---- s:0028 e:000027 CFUNC :require
c:0006 p:0194 s:0023 e:000022 TOP /usr/gem/gems/jekyll-4.3.4/lib/jekyll.rb:195 [FINISH]
c:0005 p:---- s:0020 e:000019 CFUNC :require
c:0004 p:0040 s:0015 e:000014 TOP /usr/gem/gems/jekyll-4.3.4/exe/jekyll:8 [FINISH]
c:0003 p:---- s:0012 e:000011 CFUNC :load
c:0002 p:0140 s:0007 E:0013f8 EVAL /usr/local/bundle/bin/jekyll:27 [FINISH]
c:0001 p:0000 s:0003 E:000da0 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
/usr/local/bundle/bin/jekyll:27:in `<main>'
/usr/local/bundle/bin/jekyll:27:in `load'
/usr/gem/gems/jekyll-4.3.4/exe/jekyll:8:in `<top (required)>'
/usr/gem/gems/jekyll-4.3.4/exe/jekyll:8:in `require'
/usr/gem/gems/jekyll-4.3.4/lib/jekyll.rb:195:in `<top (required)>'
/usr/gem/gems/jekyll-4.3.4/lib/jekyll.rb:195:in `require'
/usr/gem/gems/jekyll-sass-converter-3.0.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
/usr/gem/gems/jekyll-sass-converter-3.0.0/lib/jekyll-sass-converter.rb:4:in `require'
/usr/gem/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:8:in `<top (required)>'
/usr/gem/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:8:in `require'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass-embedded.rb:4:in `<top (required)>'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass-embedded.rb:4:in `require_relative'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded.rb:3:in `<top (required)>'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded.rb:3:in `require_relative'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass/compiler.rb:11:in `<top (required)>'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass/compiler.rb:11:in `require_relative'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded_protocol.rb:3:in `<top (required)>'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded_protocol.rb:5:in `<module:Sass>'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded_protocol.rb:6:in `<module:EmbeddedProtocol>'
/usr/gem/gems/sass-embedded-1.87.0/lib/sass/embedded_protocol.rb:6:in `require_relative'
/usr/gem/gems/sass-embedded-1.87.0/ext/sass/embedded_sass_pb.rb:11:in `<top (required)>'
/usr/gem/gems/sass-embedded-1.87.0/ext/sass/embedded_sass_pb.rb:11:in `add_serialized_file'
Not urgent to fix as the other method in the docs works.
I got past the segfault on my machine by switching the image from jekyll/jekyll:latest to jekyll/jekyll:pages, but it failed when installing the bigdecimal gem
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /usr/gem/gems/bigdecimal-3.1.9/ext/bigdecimal
/usr/local/bin/ruby -I /usr/local/lib/ruby/site_ruby/3.1.0 extconf.rb
checking for __builtin_clz()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/$(RUBY_BASE_NAME)
/usr/local/lib/ruby/3.1.0/mkmf.rb:498:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /usr/local/lib/ruby/3.1.0/mkmf.rb:624:in `block in try_compile'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:573:in `with_werror'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:624:in `try_compile'
from extconf.rb:6:in `block in have_builtin_func'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:1007:in `block in checking_for'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:362:in `block (2 levels) in postpone'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:332:in `open'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:362:in `block in postpone'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:332:in `open'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:358:in `postpone'
from /usr/local/lib/ruby/3.1.0/mkmf.rb:1006:in `checking_for'
from extconf.rb:5:in `have_builtin_func'
from extconf.rb:18:in `<main>'
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/usr/gem/extensions/x86_64-linux-musl/3.1.0/bigdecimal-3.1.9/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /usr/gem/gems/bigdecimal-3.1.9 for inspection.
Results logged to /usr/gem/extensions/x86_64-linux-musl/3.1.0/bigdecimal-3.1.9/gem_make.out
/usr/local/lib/ruby/site_ruby/3.1.0/rubygems/ext/builder.rb:102:in `run'
/usr/local/lib/ruby/site_ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:28:in `build'
/usr/local/lib/ruby/site_ruby/3.1.0/rubygems/ext/builder.rb:171:in `build_extension'
/usr/local/lib/ruby/site_ruby/3.1.0/rubygems/ext/builder.rb:205:in `block in build_extensions'
/usr/local/lib/ruby/site_ruby/3.1.0/rubygems/ext/builder.rb:202:in `each'
/usr/local/lib/ruby/site_ruby/3.1.0/rubygems/ext/builder.rb:202:in `build_extensions'
/usr/local/lib/ruby/site_ruby/3.1.0/rubygems/installer.rb:843:in `build_extensions'
/usr/gem/gems/bundler-2.6.8/lib/bundler/rubygems_gem_installer.rb:111:in `build_extensions'
/usr/gem/gems/bundler-2.6.8/lib/bundler/rubygems_gem_installer.rb:30:in `install'
/usr/gem/gems/bundler-2.6.8/lib/bundler/source/rubygems.rb:220:in `install'
/usr/gem/gems/bundler-2.6.8/lib/bundler/installer/gem_installer.rb:55:in `install'
/usr/gem/gems/bundler-2.6.8/lib/bundler/installer/gem_installer.rb:17:in `install_from_spec'
/usr/gem/gems/bundler-2.6.8/lib/bundler/installer/parallel_installer.rb:133:in `do_install'
/usr/gem/gems/bundler-2.6.8/lib/bundler/installer/parallel_installer.rb:124:in `block in worker_pool'
/usr/gem/gems/bundler-2.6.8/lib/bundler/worker.rb:62:in `apply_func'
/usr/gem/gems/bundler-2.6.8/lib/bundler/worker.rb:57:in `block in process_queue'
/usr/gem/gems/bundler-2.6.8/lib/bundler/worker.rb:54:in `loop'
/usr/gem/gems/bundler-2.6.8/lib/bundler/worker.rb:54:in `process_queue'
/usr/gem/gems/bundler-2.6.8/lib/bundler/worker.rb:90:in `block (2 levels) in create_threads'
An error occurred while installing bigdecimal (3.1.9), and Bundler cannot continue.
In Gemfile:
jemoji was resolved to 0.13.0, which depends on
html-pipeline was resolved to 2.14.3, which depends on
activesupport was resolved to 7.2.2.2, which depends on
bigdecimal
make: *** [Makefile:172: jekyll-docker-oneshot] Error 5
Ok, looks like these containers are no longer maintained (see issues on https://github.com/envygeeks/jekyll-docker/), so likely this just doesn't work with our current dependencies.
make jekyll-docker-serve doesn't seem to work either. This is what I get:
ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [x86_64-linux-musl]
Configuration file: /srv/jekyll/_config.yml
Configuration file: /srv/jekyll/_config.docker.yml
Remote Theme: Using theme elixir-belgium/elixir-toolkit-theme
Source: /srv/jekyll
Destination: /srv/jekyll/_site
Incremental build: enabled
Generating...
Remote Theme: Using theme elixir-belgium/elixir-toolkit-theme
Jekyll Feed: Generating feed for blog
Jekyll Feed: Generating feed for posts
GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data.
Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/main.scss':
Broken pipe
------------------------------------------------
Jekyll 4.3.4 Please append `--trace` to the `serve` command
for any additional information or backtrace.
------------------------------------------------
/usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/connection.rb:83:in `write': Broken pipe (Errno::EPIPE)
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/connection.rb:83:in `block in write'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/connection.rb:82:in `synchronize'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/connection.rb:82:in `write'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/dispatcher.rb:112:in `send_proto'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/channel.rb:61:in `send_proto'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/host.rb:220:in `send_message'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/host.rb:79:in `block in compile_request'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/host.rb:181:in `block in await'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/host.rb:199:in `listen'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/host.rb:180:in `await'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler/host.rb:78:in `compile_request'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/compiler.rb:171:in `compile_string'
from /usr/gem/gems/sass-embedded-1.93.2/lib/sass/embedded.rb:37:in `compile_string'
from /usr/gem/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:160:in `convert'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/renderer.rb:105:in `block in convert'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/renderer.rb:104:in `each'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/renderer.rb:104:in `reduce'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/renderer.rb:104:in `convert'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/renderer.rb:84:in `render_document'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/renderer.rb:63:in `run'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/site.rb:572:in `render_regenerated'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/site.rb:564:in `block in render_pages'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/site.rb:563:in `each'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/site.rb:563:in `render_pages'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/site.rb:211:in `render'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/site.rb:80:in `process'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/command.rb:28:in `process_site'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/commands/build.rb:65:in `build'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/commands/build.rb:36:in `process'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/command.rb:91:in `each'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
from /usr/gem/gems/jekyll-4.3.4/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
from /usr/gem/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
from /usr/gem/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
from /usr/gem/gems/jekyll-4.3.4/exe/jekyll:15:in `<top (required)>'
from /usr/local/bundle/bin/jekyll:27:in `load'
from /usr/local/bundle/bin/jekyll:27:in `<main>'
make: *** [jekyll-docker-serve] Error 1
Thanks, @pdurbin . I've raised #501 to remove these build options from the docs to prevent any more confusion.