2017-01-13 18 views
0

Я просмотрел все сообщения на SO с похожими ошибками, установив драгоценный камень Postgres pg.Docker build не удалось установить pg gem в проекте Sinatra

Моя проблема уникальна: Я могу успешно добавить Postgres к моему проекту Синатра Руби через Gemfile и bundle install - однако при создании образа 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 *** 

Я ве пробовали все предложенное в подобных ответах:

  • Brew установки/удаления,
  • камень установки/удаления с указанием пути к обоим файлам: pg_config и libpq-fe.h
  • т.д.

Как я не слишком хорошо знаком с Докер, там что-то я пропускаю об установке БД с Докерами?

Любая помощь очень ценится заранее. Спасибо.

+0

опубликуйте свой файл Dockerfile – user2915097

ответ

1

Если это проблема, убедитесь, что у вашего изображения докеры установлены postgresql-client, postgresql-dev и build-essentials. Включите что-то вроде

... 
RUN apk update && apk upgrade 
RUN apk add postgresql-client build-dependencies postgresql-dev 
... 

в вашем файле Docker перед запуском пакета. Пакет postgresql-dev содержит заголовки и другие файлы, связанные с dev.

+1

Чтобы расширить это немного, на вашем локальном компьютере устанавливается 'brew', но Docker не видит этих изменений. Он действует как виртуальная машина. Если у клиентской ОС нет postgresql, 'pg' gem не скомпилируется. Ответ Глена получает те, которые установлены в клиенте. –