Docker baut nicht auf, da ODBC sqlext.h fehltPhp

PHP-Programmierer chatten hier
Guest
 Docker baut nicht auf, da ODBC sqlext.h fehlt

Post by Guest »

Es wird versucht, ein Docker-Image aus dem neuesten 8.3-Apache zu erstellen.
Der Build stürzt aufgrund einer fehlenden Datei systematisch ab, während versucht wird, PHP ODBC zu erstellen, abhängig vom Befehl „

Code: Select all

RUN docker-php-ext-install odbc
".
ODBC ist in einem kleinen PHP-Skript erforderlich, das ich verwende, um Daten von einem Microsoft SQL Server abzurufen. Gibt es eine Alternative, die ich dazu verwenden kann? Benötigen Sie nicht die ODBC-PHP-Erweiterung?
Die genaue Fehlermeldung lautet:

Code: Select all

113.9 configure: error: ODBC header file '/usr/local/incl/sqlext.h' not found!
------
failed to solve: process "/bin/sh -c docker-php-ext-install     pdo     pdo_mysql     mysqli     intl     zip     gd     opcache     xsl     gd     odbc" did not complete successfully: exit code: 1
Hier ist meine vollständige Docker-Datei, falls das helfen könnte:

Code: Select all

FROM php:8.3-apache

# Apache configuration
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
RUN a2enmod rewrite

# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
unzip \
libicu-dev \
libzip-dev \
libpng-dev \
libxml2-dev \
libxslt-dev \
unixodbc \
unixodbc-dev \
gpg \
curl \
wget \
build-essential \
gnupg2 \
ca-certificates \
libapache2-mod-fcgid \
locales coreutils apt-utils git \
&& rm -rf /var/lib/apt/lists/*

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

WORKDIR /var/www/html
COPY . .

ENV COMPOSER_ALLOW_SUPERUSER=1
RUN git config --global --add safe.directory /var/www/html

# Install PHP dependencies and optimize
RUN composer install --no-dev --no-scripts --optimize-autoloader \
&& composer dump-autoload --optimize \
&& composer dump-env prod

# Install Microsoft ODBC driver and SQLSRV extension
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
RUN curl https://packages.microsoft.com/config/debian/12/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql18

# Install the SQLSRV and PDO_SQLSRV PHP extensions
RUN pecl install sqlsrv pdo_sqlsrv \
&& docker-php-ext-enable sqlsrv pdo_sqlsrv

# Install MS SQL client dependencies
RUN apt-get install -y msodbcsql18

# SQLSRV and PDO_SQLSRV extensions configuration
RUN echo "extension=sqlsrv.so" >> /usr/local/etc/php/conf.d/docker-php-ext-sqlsrv.ini
RUN echo "extension=pdo_sqlsrv.so" >> /usr/local/etc/php/conf.d/docker-php-ext-pdo-sqlsrv.ini
RUN echo "extension=odbc.so" >> /usr/local/etc/php/conf.d/odbc.ini

# PHP extensions
RUN docker-php-ext-install \
pdo \
pdo_mysql \
mysqli \
intl \
zip \
gd \
opcache \
xsl \
gd \
odbc

# Set permissions for the application files
RUN chown -R www-data:www-data /var/www/html

# Configure PHP OPcache
RUN { \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=0'; \
echo 'opcache.fast_shutdown=1'; \
echo 'opcache.enable_cli=1'; \
} > /usr/local/etc/php/conf.d/opcache-recommended.ini

# Copy Apache VirtualHost configuration
COPY vhost.conf /etc/apache2/sites-available/000-default.conf

EXPOSE 80

# Run Apache in the foreground
CMD ["apache2-foreground"]```

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post