Switch to alpine linux
it can be build, but fails to start.
docker run -it --rm -p 3000:3000 -e DEVELOP=1 -e SECRET_KEY_BASE=9dea7603c008dec285e4b231602a00b2 hdm-local
rake aborted!
LoadError: cannot load such file -- sqlite3/sqlite3_native (LoadError)
/usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34:in `require'
/usr/local/bundle/gems/sqlite3-1.7.3-aarch64-linux/lib/sqlite3.rb:6:in `rescue in <top (required)>'
/usr/local/bundle/gems/sqlite3-1.7.3-aarch64-linux/lib/sqlite3.rb:2:in `<top (required)>'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34:in `require'
/hdm/config/application.rb:7:in `<top (required)>'
/hdm/Rakefile:14:in `require_relative'
/hdm/Rakefile:14:in `<top (required)>'
/usr/local/bundle/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Caused by:
LoadError: Error relocating /usr/local/bundle/gems/sqlite3-1.7.3-aarch64-linux/lib/sqlite3/3.3/sqlite3_native.so: fcntl64: symbol not found - /usr/local/bundle/gems/sqlite3-1.7.3-aarch64-linux/lib/sqlite3/3.3/sqlite3_native.so (LoadError)
/usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34:in `require'
/usr/local/bundle/gems/sqlite3-1.7.3-aarch64-linux/lib/sqlite3.rb:4:in `<top (required)>'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34:in `require'
/hdm/config/application.rb:7:in `<top (required)>'
/hdm/Rakefile:14:in `require_relative'
/hdm/Rakefile:14:in `<top (required)>'
/usr/local/bundle/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)
oh nice.... i got it change the error to a segmentation fault XD
/usr/local/bundle/gems/sass-embedded-1.77.8-aarch64-linux-musl/ext/sass/embedded_sass_pb.rb:11: [BUG] Segmentation fault at 0x0000000000003ca0
ruby 3.3.4 (2024-07-09 revision be1089c8ec) +YJIT [aarch64-linux-musl]
-- Control frame information -----------------------------------------------
c:0075 p:---- s:0376 e:000375 CFUNC :add_serialized_file
c:0074 p:0022 s:0371 e:000370 TOP /usr/local/bundle/gems/sass-embedded-1.77.8-aarch64-linux-musl/ext/sass/embedded_sass_pb.rb:11 [FINISH]
c:0073 p:---- s:0366 e:000365 CFUNC :require_relative
c:0072 p:0005 s:0361 e:000360 CLASS /usr/local/bundle/gems/sass-embedded-1.77.8-aarch64-linux-musl/lib/sass/embedded_protocol.rb:6
c:0071 p:0007 s:0358 e:000357 CLASS /usr/local/bundle/gems/sass-embedded-1.77.8-aarch64-linux-musl/lib/sass/embedded_protocol.rb:5
c:0070 p:0007 s:0355 e:000354 TOP /usr/local/bundle/gems/sass-embedded-1.77.8-aarch64-linux-musl/lib/sass/embedded_protocol.rb:3 [FINISH]
c:0069 p:---- s:0352 e:000351 CFUNC :require_relative
c:0068 p:0053 s:0347 e:000346 TOP /usr/local/bundle/gems/sass-embedded-1.77.8-aarch64-linux-musl/lib/sass/compiler.rb:11 [FINISH]
c:0067 p:---- s:0344 e:000343 CFUNC :require_relative
c:0066 p:0005 s:0339 e:000338 TOP /usr/local/bundle/gems/sass-embedded-1.77.8-aarch64-linux-musl/lib/sass/embedded.rb:3 [FINISH]
c:0065 p:---- s:0336 e:000335 CFUNC :require_relative
c:0064 p:0005 s:0331 e:000330 TOP /usr/local/bundle/gems/sass-embedded-1.77.8-aarch64-linux-musl/lib/sass-embedded.rb:4 [FINISH]
c:0063 p:---- s:0328 e:000327 CFUNC :require
c:0062 p:0030 s:0323 e:000322 BLOCK /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
c:0061 p:0055 s:0317 e:000316 METHOD /usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34
c:0060 p:0011 s:0309 e:000308 TOP /usr/local/bundle/gems/sassc-embedded-1.77.8/lib/sassc/embedded.rb:4 [FINISH]
c:0059 p:---- s:0306 e:000305 CFUNC :require_relative
c:0058 p:0005 s:0301 e:000300 TOP /usr/local/bundle/gems/sassc-embedded-1.77.8/lib/sassc-embedded.rb:4 [FINISH]
c:0057 p:---- s:0298 e:000297 CFUNC :require
c:0056 p:0030 s:0293 e:000292 BLOCK /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
c:0055 p:0055 s:0287 e:000286 METHOD /usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34
c:0054 p:0011 s:0279 e:000278 TOP /usr/local/bundle/gems/dartsass-sprockets-3.1.0/lib/sassc/rails.rb:5 [FINISH]
c:0053 p:---- s:0276 e:000275 CFUNC :require_relative
c:0052 p:0005 s:0271 e:000270 TOP /usr/local/bundle/gems/dartsass-sprockets-3.1.0/lib/dartsass-sprockets.rb:3 [FINISH]
c:0051 p:---- s:0268 e:000267 CFUNC :require
c:0050 p:0030 s:0263 e:000262 BLOCK /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
c:0049 p:0055 s:0257 e:000256 METHOD /usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34
c:0048 p:0011 s:0249 e:000248 TOP /usr/local/bundle/gems/bootstrap-5.3.3/lib/bootstrap/engine.rb:5 [FINISH]
c:0047 p:---- s:0246 e:000245 CFUNC :require
c:0046 p:0030 s:0241 e:000240 BLOCK /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74 [FINISH]
c:0045 p:0055 s:0235 e:000234 METHOD /usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34
c:0044 p:0005 s:0227 e:000226 METHOD /usr/local/bundle/gems/bootstrap-5.3.3/lib/bootstrap.rb:61
c:0043 p:0008 s:0223 e:000222 METHOD /usr/local/bundle/gems/bootstrap-5.3.3/lib/bootstrap.rb:11
c:0042 p:0024 s:0219 e:000218 TOP /usr/local/bundle/gems/bootstrap-5.3.3/lib/bootstrap.rb:75 [FINISH]
c:0041 p:---- s:0216 e:000215 CFUNC :require
c:0040 p:0011 s:0211 e:000210 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0039 p:0030 s:0205 e:000204 BLOCK /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74 [FINISH]
c:0038 p:0055 s:0199 e:000198 METHOD /usr/local/bundle/gems/zeitwerk-2.6.17/lib/zeitwerk/kernel.rb:34
c:0037 p:0025 s:0191 e:000190 BLOCK /usr/local/lib/ruby/3.3.0/bundler/runtime.rb:60 [FINISH]
c:0036 p:---- s:0186 e:000185 CFUNC :each
c:0035 p:0042 s:0182 e:000181 BLOCK /usr/local/lib/ruby/3.3.0/bundler/runtime.rb:55 [FINISH]
c:0034 p:---- s:0175 e:000174 CFUNC :each
c:0033 p:0026 s:0171 e:000170 METHOD /usr/local/lib/ruby/3.3.0/bundler/runtime.rb:44
c:0032 p:0013 s:0166 e:000165 METHOD /usr/local/lib/ruby/3.3.0/bundler.rb:207
c:0031 p:0022 s:0161 e:000160 TOP /hdm/config/application.rb:7 [FINISH]
c:0030 p:---- s:0158 e:000157 CFUNC :require_relative
c:0029 p:0027 s:0153 E:002370 TOP /hdm/Rakefile:14 [FINISH]
c:0028 p:---- s:0150 e:000149 CFUNC :load
c:0027 p:0005 s:0145 e:000144 METHOD /usr/local/bundle/gems/rake-13.2.1/lib/rake/rake_module.rb:29
c:0026 p:0143 s:0140 e:000139 METHOD /usr/local/bundle/gems/rake-13.2.1/lib/rake/application.rb:740
c:0025 p:0003 s:0134 e:000133 BLOCK /usr/local/bundle/gems/rake-13.2.1/lib/rake/application.rb:126
c:0024 p:0002 s:0131 e:000130 METHOD /usr/local/bundle/gems/rake-13.2.1/lib/rake/application.rb:214
c:0023 p:0004 s:0126 e:000125 METHOD /usr/local/bundle/gems/rake-13.2.1/lib/rake/application.rb:125
c:0022 p:0011 s:0122 e:000121 BLOCK /usr/local/bundle/gems/rake-13.2.1/lib/rake/application.rb:82
c:0021 p:0002 s:0119 e:000118 METHOD /usr/local/bundle/gems/rake-13.2.1/lib/rake/application.rb:214
c:0020 p:0008 s:0114 e:000113 METHOD /usr/local/bundle/gems/rake-13.2.1/lib/rake/application.rb:80
c:0019 p:0012 s:0109 e:000108 TOP /usr/local/bundle/gems/rake-13.2.1/exe/rake:27 [FINISH]
c:0018 p:---- s:0106 e:000105 CFUNC :load
c:0017 p:0078 s:0101 e:000100 TOP /usr/local/bundle/bin/rake:25 [FINISH]
c:0016 p:---- s:0096 e:000095 CFUNC :load
c:0015 p:0064 s:0091 e:000090 METHOD /usr/local/lib/ruby/3.3.0/bundler/cli/exec.rb:58
c:0014 p:0050 s:0085 e:000084 METHOD /usr/local/lib/ruby/3.3.0/bundler/cli/exec.rb:23
c:0013 p:0044 s:0080 e:000079 METHOD /usr/local/lib/ruby/3.3.0/bundler/cli.rb:455
c:0012 p:0054 s:0073 e:000072 METHOD /usr/local/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/command.rb:28
c:0011 p:0040 s:0065 e:000064 METHOD /usr/local/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/invocation.rb:127
c:0010 p:0213 s:0058 e:000057 METHOD /usr/local/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor.rb:527
c:0009 p:0008 s:0045 e:000044 METHOD /usr/local/lib/ruby/3.3.0/bundler/cli.rb:35
c:0008 p:0044 s:0040 e:000039 METHOD /usr/local/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/base.rb:584
c:0007 p:0022 s:0033 e:000032 METHOD /usr/local/lib/ruby/3.3.0/bundler/cli.rb:29
c:0006 p:0042 s:0028 e:000027 BLOCK /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.5.11/exe/bundle:28
c:0005 p:0007 s:0022 e:000021 METHOD /usr/local/lib/ruby/3.3.0/bundler/friendly_errors.rb:117
c:0004 p:0051 s:0017 E:0021c8 TOP /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.5.11/exe/bundle:20 [FINISH]
c:0003 p:---- s:0013 e:000012 CFUNC :load
c:0002 p:0081 s:0008 E:002020 EVAL /usr/local/bin/bundle:25 [FINISH]
c:0001 p:0000 s:0003 E:000430 DUMMY [FINISH]
-- Ruby level backtrace information ----------------------------------------
ahhh dang it :( https://github.com/sass/dart-sass-embedded/issues/85
Pre-built protobuf gems were causing segmentation faults on Alpine Linux. Building the gem directly on the Alpine system resolved the issue.
Fixing it was adding this to the Gemfile:
gem 'google-protobuf', force_ruby_platform: true
@oneiros what do you think about the fix, setting the force_ruby_platform: true flag in the Gemfile?
i think i will do a release before merging this, and then a new release after the merge with a major bump because we completely change the underlying structure of the container.
@oneiros what do you think about the fix, setting the
force_ruby_platform: trueflag in the Gemfile?
If I understand that option correctly, it always forces compilation of native extensions and will not allow installation of precompiled binaries. This might mean a little more effort on each installation, but if it fixes the issue, I think that this is a trade-off that is justified.