簡體   English   中英

“錯誤:無法構建 gem 原生擴展”構建 Docker 圖像

[英]"ERROR: Failed to build gem native extension" building Docker image

我正在嘗試基於 ruby:3.0 構建 Docker 映像。 在 Dockerfile 內部,運行“RUN bundle install”時,開始安裝依賴項,直到顯示錯誤:

Gem::Ext::BuildError: 錯誤: 無法構建 gem 原生擴展。 #10 34.20 #10 34.20 當前目錄:/usr/local/bundle/gems/tiny_tds-2.1.5/ext/tiny_tds #10 34.20 /usr/local/bin/ruby -I /usr/local/lib/ruby/3.0 .0 -r #10 34.20./siteconf20220804-7-s3hvms.rb extconf.rb #10 34.20 在以下目錄中尋找 freetds 頭文件:#10 34.20 - /opt/local/include #10 34.20 - /opt/local/ include/freetds #10 34.20 - /usr/local/include #10 34.20 - /usr/local/include/freetds #10 34.20 在以下目錄中尋找 freetds 庫:#10 34.20 - /opt/local/lib #10 34.20 - /opt/local/lib/freetds #10 34.20 - /usr/local/lib #10 34.20 - /usr/local/lib/freetds

通常,安裝正在使用的 linux 分發頭文件可以解決此問題,但在這種情況下,我不知道該怎么做。

Dockerfile 是這樣的:

FROM ruby:3.0

## throw errors if Gemfile has been modified since Gemfile.lock
RUN bundle config --global frozen 1

WORKDIR /usr/src/app

COPY Gemfile Gemfile.lock ./

RUN gem i bundler
RUN bundle install

COPY . .

CMD ["rails c"]

我嘗試將此添加到 Dockerfile,但顯示另一個錯誤:

RUN apt-get install ruby-dev

在此處輸入圖像描述

非常感謝任何可以幫助我的人。

嘗試在 3.0-buster 映像上構建,因為我認為它附帶了額外的軟件包。 更多信息: https://hub.docker.com/_/ruby

我在 Dockerfile 中運行RUN apt-get install ruby-dev -dev ,這個問題對你來說是一樣的。

我改為吼叫。 除此之外,您還可以添加其他庫,例如nodejs postgresql-client ...我在這里咨詢過https://docs.docker.com/samples/rails/

RUN apt-get update -qq && apt-get install -yq --no-install-recommends \
    libpq-dev \
    ruby-dev

或者

RUN apt-get update -qq && apt-get install -y ruby-dev

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM