Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: switch to alpine linux #416

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open

feat: switch to alpine linux #416

wants to merge 10 commits into from

Conversation

rwaffen
Copy link
Member

@rwaffen rwaffen commented Jul 31, 2024

No description provided.

@rwaffen
Copy link
Member Author

rwaffen commented Jul 31, 2024

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)

@rwaffen
Copy link
Member Author

rwaffen commented Jul 31, 2024

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 ----------------------------------------

@rwaffen
Copy link
Member Author

rwaffen commented Jul 31, 2024

ahhh dang it :(
sass/dart-sass-embedded#85

Signed-off-by: Robert Waffen <[email protected]>
@rwaffen
Copy link
Member Author

rwaffen commented Nov 29, 2024

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

@rwaffen rwaffen marked this pull request as ready for review November 29, 2024 11:37
@rwaffen rwaffen requested a review from a team as a code owner November 29, 2024 11:37
@rwaffen rwaffen changed the title Switch to alpine linux feat: switch to alpine linux Nov 29, 2024
@rwaffen
Copy link
Member Author

rwaffen commented Nov 29, 2024

@oneiros what do you think about the fix, setting the force_ruby_platform: true flag in the Gemfile?

Gemfile Show resolved Hide resolved
bastelfreak
bastelfreak previously approved these changes Dec 1, 2024
@rwaffen
Copy link
Member Author

rwaffen commented Dec 2, 2024

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.

bastelfreak
bastelfreak previously approved these changes Dec 3, 2024
@rwaffen rwaffen added the enhancement New feature or request label Dec 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants