我已经审核了SO上的所有帖子,并在安装Postgres pg
gem时出现类似错误。
我的问题是独一无二的:我可以通过Gemfile和bundle install
成功地将Postgres添加到我的Sinatra Ruby项目中 - 但是在构建Docker镜像时,安装pg
失败时出现以下错误:
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
current directory: /usr/local/bundle/gems/pg-0.19.0/ext
/usr/local/bin/ruby -r ./siteconf20170113-7-ottv1k.rb extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
我尝试过类似答案中提出的所有建议:
pg_config
和libpq-fe.h
由于我对Docker不太熟悉,有什么东西我在使用Docker安装数据库时缺少什么?
提前非常感谢任何帮助。谢谢。
答案 0 :(得分:2)
如果仍有问题,请确保您的泊坞窗图片已安装postgresql-client
,postgresql-dev
和build-essentials
。包含类似
...
RUN apk update && apk upgrade
RUN apk add postgresql-client build-dependencies postgresql-dev
...
在运行bundle install之前,在Dockerfile中。 postgresql-dev
包中包含标题和其他与开发相关的文件。
答案 1 :(得分:0)
由于缺少libpq-dev
软件包而导致此错误。
这是用于安装pg
gem的最小的基于ubuntu的Dockerfile:
FROM ruby:2.6.6-slim-buster
RUN apt update && apt install -y \
build-essential libpq-dev \
&& rm -rf /var/lib/apt/lists/*
RUN gem install pg