環境
WSL2にubuntu20.04.5LTS
rubyのベースイメージ ruby:alpine3.16
gemfile
source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } gem 'rails', '~> 7.0', '>= 7.0.4'
実現したいこと
docker でruby3.0以上rails7.0以上の環境を構築したい
発生している問題・エラーメッセージ
bundle install時のエラーが
Fetching gem metadata from https://rubygems.org/........... Installing websocket-driver 0.7.5 with native extensions Installing racc 1.6.0 with native extensions Installing nio4r 2.5.8 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /usr/local/bundle/gems/racc-1.6.0/ext/racc/cparse /usr/local/bin/ruby -I /usr/local/lib/ruby/3.0.0 -r ./siteconf20221023-10158-pz1jhy.rb extconf.rb checking for rb_block_call()... *** 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.0.0/mkmf.rb:471: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.0.0/mkmf.rb:564:in `try_link0' from /usr/local/lib/ruby/3.0.0/mkmf.rb:582:in `try_link' from /usr/local/lib/ruby/3.0.0/mkmf.rb:794:in `try_func' from /usr/local/lib/ruby/3.0.0/mkmf.rb:1083:in `block in have_func' from /usr/local/lib/ruby/3.0.0/mkmf.rb:971:in `block in checking_for' from /usr/local/lib/ruby/3.0.0/mkmf.rb:361:in `block (2 levels) in postpone' from /usr/local/lib/ruby/3.0.0/mkmf.rb:331:in `open' from /usr/local/lib/ruby/3.0.0/mkmf.rb:361:in `block in postpone' from /usr/local/lib/ruby/3.0.0/mkmf.rb:331:in `open' from /usr/local/lib/ruby/3.0.0/mkmf.rb:357:in `postpone' from /usr/local/lib/ruby/3.0.0/mkmf.rb:970:in `checking_for' from /usr/local/lib/ruby/3.0.0/mkmf.rb:1082:in `have_func' from extconf.rb:6:in `<main>' To see why this extension failed to compile, please check the mkmf.log which can be found here: /usr/local/bundle/extensions/x86_64-linux-musl/3.0.0/racc-1.6.0/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /usr/local/bundle/gems/racc-1.6.0 for inspection. Results logged to /usr/local/bundle/extensions/x86_64-linux-musl/3.0.0/racc-1.6.0/gem_make.out /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:93:in `run' /usr/local/lib/ruby/3.0.0/rubygems/ext/ext_conf_builder.rb:47:in `block in build' /usr/local/lib/ruby/3.0.0/tempfile.rb:317:in `open' /usr/local/lib/ruby/3.0.0/rubygems/ext/ext_conf_builder.rb:26:in `build' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:159:in `build_extension' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:193:in `block in build_extensions' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:190:in `each' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:190:in `build_extensions' /usr/local/lib/ruby/3.0.0/rubygems/installer.rb:837:in `build_extensions' /usr/local/lib/ruby/3.0.0/bundler/rubygems_gem_installer.rb:71:in `build_extensions' /usr/local/lib/ruby/3.0.0/bundler/rubygems_gem_installer.rb:28:in `install' /usr/local/lib/ruby/3.0.0/bundler/source/rubygems.rb:204:in `install' /usr/local/lib/ruby/3.0.0/bundler/installer/gem_installer.rb:54:in `install' /usr/local/lib/ruby/3.0.0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /usr/local/lib/ruby/3.0.0/bundler/installer/parallel_installer.rb:186:in `do_install' /usr/local/lib/ruby/3.0.0/bundler/installer/parallel_installer.rb:177:in `block in worker_pool' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:62:in `apply_func' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:57:in `block in process_queue' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:54:in `loop' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:54:in `process_queue' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:91:in `block (2 levels) in create_threads' An error occurred while installing racc (1.6.0), and Bundler cannot continue. In Gemfile: rails was resolved to 7.0.4, which depends on actioncable was resolved to 7.0.4, which depends on actionpack was resolved to 7.0.4, which depends on actionview was resolved to 7.0.4, which depends on rails-dom-testing was resolved to 2.0.3, which depends on nokogiri was resolved to 1.13.9, which depends on racc Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /usr/local/bundle/gems/websocket-driver-0.7.5/ext/websocket-driver /usr/local/bin/ruby -I /usr/local/lib/ruby/3.0.0 -r ./siteconf20221023-10158-di60ku.rb extconf.rb creating Makefile current directory: /usr/local/bundle/gems/websocket-driver-0.7.5/ext/websocket-driver make DESTDIR\= clean current directory: /usr/local/bundle/gems/websocket-driver-0.7.5/ext/websocket-driver make DESTDIR\= make failedNo such file or directory - make Gem files will remain installed in /usr/local/bundle/gems/websocket-driver-0.7.5 for inspection. Results logged to /usr/local/bundle/extensions/x86_64-linux-musl/3.0.0/websocket-driver-0.7.5/gem_make.out /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:74:in `rescue in run' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:73:in `run' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:44:in `block in make' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:36:in `each' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:36:in `make' /usr/local/lib/ruby/3.0.0/rubygems/ext/ext_conf_builder.rb:63:in `block in build' /usr/local/lib/ruby/3.0.0/tempfile.rb:317:in `open' /usr/local/lib/ruby/3.0.0/rubygems/ext/ext_conf_builder.rb:26:in `build' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:159:in `build_extension' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:193:in `block in build_extensions' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:190:in `each' /usr/local/lib/ruby/3.0.0/rubygems/ext/builder.rb:190:in `build_extensions' /usr/local/lib/ruby/3.0.0/rubygems/installer.rb:837:in `build_extensions' /usr/local/lib/ruby/3.0.0/bundler/rubygems_gem_installer.rb:71:in `build_extensions' /usr/local/lib/ruby/3.0.0/bundler/rubygems_gem_installer.rb:28:in `install' /usr/local/lib/ruby/3.0.0/bundler/source/rubygems.rb:204:in `install' /usr/local/lib/ruby/3.0.0/bundler/installer/gem_installer.rb:54:in `install' /usr/local/lib/ruby/3.0.0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /usr/local/lib/ruby/3.0.0/bundler/installer/parallel_installer.rb:186:in `do_install' /usr/local/lib/ruby/3.0.0/bundler/installer/parallel_installer.rb:177:in `block in worker_pool' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:62:in `apply_func' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:57:in `block in process_queue' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:54:in `loop' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:54:in `process_queue' /usr/local/lib/ruby/3.0.0/bundler/worker.rb:91:in `block (2 levels) in create_threads' An error occurred while installing websocket-driver (0.7.5), and Bundler cannot continue. In Gemfile: rails was resolved to 7.0.4, which depends on actioncable was resolved to 7.0.4, which depends on websocket-driver
エラーメッセージを
書いてあることを読む限り、
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. An error occurred while installing racc (1.6.0), and Bundler cannot continue. An error occurred while installing websocket-driver (0.7.5), and Bundler cannot continue.
主にこの3つが原因ぽい。
native extensionはgemが依存しているCなどで書かれたライブラリーのことらしい。
始めは
An error occurred while installing nio4r (2.5.8), and Bundler cannot continue.
というエラーも出ていたのですが
いろいろ調べているとruby-devをインストールするといいらしいので、
apk add --upgrade ruby-dev
を実行するとしたら消えました。
ここから詰まったのでエラーになっているgemを単体でインストールしてみましたが、エラー文は同じでした。
一応
/app # cat /usr/local/bundle/extensions/x86_64-linux-musl/3.0.0/racc-1.6.0/mkmf.log "gcc -o conftest -I/usr/local/include/ruby-3.0.0/x86_64-linux-musl -I/usr/local/include/ruby-3.0.0/ruby/backward -I/usr/local/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -fPIC conftest.c -L. -L/usr/local/lib -Wl,-rpath,/usr/local/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lruby -lm -lc" checked program was: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char **argv) 4: { 5: return !!argv[argc]; 6: } /* end */
ログを確認しましたが、ここから何かがわかるとは思えないので詰まっています。
(xcodeの解決策ばっかり出てくる)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。