Ошибка Docker, Frankenphp, Laravel: не удалось найти драйвер. Соединение: pgsql.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка Docker, Frankenphp, Laravel: не удалось найти драйвер. Соединение: pgsql.

Сообщение Anonymous »

У меня очень странная и неприятная проблема... Я довожу ситуацию до безумия:
Я создал докер-контейнер со следующими конфигурациями:
Файл Docker

Код: Выделить всё

# Dockerfile
FROM php:8.3-fpm

# PHP INI
COPY /docker/php/php.ini /usr/local/etc/php/php.ini

# Install dependencies
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg62-turbo-dev \
libfreetype6-dev \
zip \
unzip \
git \
curl \
libonig-dev \
libxml2-dev \
libpq-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install pdo_mysql pdo_pgsql mbstring pdo pgsql exif pcntl bcmath gd

# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Set working directory
WORKDIR /var/www

# Copy existing application directory contents
COPY . /var/www

# Copy existing application directory permissions
COPY --chown=www-data:www-data . /var/www

# Install Composer dependencies
RUN composer install --prefer-dist --no-progress --no-interaction --no-dev

# Expose port 9000
EXPOSE 9000

# Start Laravel Octane
CMD ["php", "artisan", "octane:start", "--server=frankenphp", "--host=0.0.0.0", "--port=9000"]

docker-compose.yml

Код: Выделить всё

services:
frankenphp:
image: dunglas/frankenphp
container_name: frankenphp
restart: unless-stopped
ports:
- "8000:80"
- "443:443"
volumes:
- .:/app
- ./certs:/certs
- ./docker/caddy/Caddyfile:/etc/caddy/Caddyfile
networks:
- app-network

db:
image: postgres:14-alpine
container_name: db
ports:
- "5432:5432"
volumes:
- ~/apps/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=password
networks:
- app-network

pgadmin:
image: dpage/pgadmin4
container_name: pgadmin
restart: unless-stopped
volumes:
- pgadmin_data:/var/lib/pgadmin
ports:
- "8080:80"
environment:
- PGADMIN_DEFAULT_EMAIL=email@email.com
- PGADMIN_DEFAULT_PASSWORD=password
networks:
- app-network

php:
build: .
container_name: php
volumes:
- .:/var/www
working_dir: /var/www
networks:
- app-network

composer:
image: composer:latest
container_name: composer
volumes:
- .:/app
working_dir: /app
networks:
- app-network
entrypoint: [ "composer" ]

redis:
image: redis:6-alpine
container_name: redis
ports:
- "6379:6379"
command: redis-server --requirepass "password"
networks:
- app-network

npm:
image: node:latest
container_name: npm
volumes:
- .:/app
working_dir: /app
networks:
- app-network
command: npm install

volumes:
pgadmin_data:

networks:
app-network:
driver: bridge
.env

Код: Выделить всё

DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
DB_DATABASE=app
DB_USERNAME=app
DB_PASSWORD=password
Я создал приложение базы данных, а также привилегии для пользовательского приложения.
Когда я запускаю:
docker compose up --build -d
затем я запускаю:
docker Compose run --rm php php artisanmigrate ИЛИ docker Compose run --rm php php artisanmigrate: свежее
Все работает и таблицы загружаются в базу данных.
Но при открытии приложения выдает ошибку:не удалось найти драйвер (соединение: pgsql, SQL: выберите * из «сессий», где «id» = YVQKOF5zkNoZv4yfC3A5MlcU64hYyD8gG9tv8O7o, ограничение 1)
в таблице сессий ничего не записано и выдает ошибку в драйвере. Не могу понять, в чем проблема... Буду рад, если кто-нибудь сталкивался с этим и помог мне.
Заранее спасибо
Я даже добавил внешний файл php.ini, в который добавил:

Код: Выделить всё

upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 60
memory_limit = 256M
extension=php_pgsql.so

везде устанавливается правильно:
docker-php-ext-install pdo_mysql pdo_pgsql mbstring pdo pgsql geolocation pcntl bcmath gd
Но ничего не происходит не получится.

Подробнее здесь: https://stackoverflow.com/questions/785 ... tion-pgsql
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»