@EVOSandru6

Как поставить php-pgsql клиент на php:7.1-cli контейнер?

Добрый день,

Сам postgres контейнер точно рабочий, конектился, манипулировал данными через Database manager. Проблема именно в том, чтобы подружить его с php{''|7.1}

Фрагмент docker-compose.yml

php-cli:
    build: ${CONTAINERS_PATH}/php-cli
    volumes:
      - ${APP_PATH_HOST}:/var/www
    environment:
      - DB_CONNECTION=pgsql
      - DB_PORT=5432
      - DB_HOST=pgsql
    tty: true
pgsql:
    image: postgres:latest
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DATABASE=${DB_NAME}
    ports:
      - 54321:5432
    volumes:
      - ./storage/docker/postgres/:/docker-entrypoint-initdb.d/


Есть такой Dockerfile:

FROM php:7.1-cli
RUN apt-get update && apt-get install -y libmcrypt-dev php-pgsql; ## или php7.1-pgsql, тот же результат
RUN docker-php-ext-install mcrypt pcntl pdo pdo_pgsql;
WORKDIR /var/www


При

docker-compose-up:

E: Package 'php-pgsql' has no installation candidate
ERROR: Service 'php-cli' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y libmcrypt-dev php-pgsql; ## php7.1-pgsql' returned a non-zero code: 100


Если меняю Dockerfile на: (убираю php-pgsql)

FROM php:7.1-cli
RUN apt-get update && apt-get install -y libmcrypt-dev; 
RUN docker-php-ext-install mcrypt pcntl pdo pdo_pgsql;
WORKDIR /var/www


Ловлю:

checking for pg_config... not found
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
ERROR: Service 'php-cli' failed to build: The command '/bin/sh -c docker-php-ext-install mcrypt pcntl pdo pdo_mysql pdo_pgsql;' returned a non-zero code: 1


Подскажите пожалуйста - если кто нибудь сталкивался.
  • Вопрос задан
  • 2399 просмотров
Решения вопроса 3
@TelepnevDmitriy
Senior Web Developer
Я решил эту проблему так
RUN set -ex \
    && echo "deb http://ftp.de.debian.org/debian stretch main" >> /etc/apt/sources.list \
    && apt-get update \
    && apt-get install -y php-pgsql


Не уверен, что правильно, но работает
Ответ написан
OnYourLips
@OnYourLips
Вам надо либо использовать знакомую систему, где вы поставите нужный пакет обычным способом, либо устанавливать зависимости для сборки самостоятельно.

Я использую базовый ubuntu образ и добавляю ondrej репозиторий, пакеты ставлю из него.
Ответ написан
Комментировать
@EVOSandru6 Автор вопроса
Поставил php7.1-fpm-alpine и все гуд
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы